As stated in my above comment I couldn't make it work passed the 2038 Epochalipse date limit, not even converting the field to DATETIME. There are probably other considerations affecting this eventual solution.
The only workaround that I could find was to get the date out of the DB from PHP and use the strtotime() PHP function to get the UNIX TIMESTAMP from it.
SELECT DATE_FORMAT(CONVERT(thedatefield, DATETIME),"%Y-%m-%dT%TZ") AS thedatefield
As there exist different date formats (American, English, Latin, etc...) which are incompatible and a possible source of trouble, I am using two MySQL/ MariaDB functions to flatten the output to an ISO date (YYY-MM-DDThh:mm:ss). Once the output is uniform in any system you can pass the output to the strtotime() PHP function with the confidence that it will be correctly parsed to a UNIX TIMESTAMP.
CONVERT: casts the date to a datetime DB type.
DATE_FORMAT: converts the date to ISO format (YYY-MM-DDThh:mm:ss).
You can of course remove those functions and adapt the solution to the particularities of your system to reduce the processing load. This proposed solution will work with any system date style.
In case of just one register being returned by PHP (the simplest case) I set the first dimension of the returned 2D or table array to 0
date("U",strtotime($php_array[0][thedatefield]))
The PHP date() function by virtue of the "U" flag will convert the DB output to a UNIX TIMESTAMP without the 32 bit 2038 Epochalipse limitation.
select timestampdiff(second, '1970-01-01', NOW() + INTERVAL 19 YEAR).DATE, which runs out after "9999-12-31" (noTIMEcomponent) will work for you? SeeTO_DAYS()and lots of+ INTERVAL ...capabilities.