How long can expires_at be set in icrc2_approve?

How long can expires_at be set in icrc2_approve?

Do I have to use icrc2_approve once to transfer a token?

expires_at takes a nat64, and it represents a timestamp. The highest valid value is u64::MAX. From the Rust docs:

pub const MAX: Self = 18_446_744_073_709_551_615u64
The largest value that can be represented by this integer type (2^64 − 1).