Cách giải quyết có thể là có hằng số tiện dụng tương ứng với số giây trong một số năm nhất định (tốt nhất là bội số của 4). Bạn có thể thêm hằng số này, dịch thời gian và sau đó trừ số năm đã chọn.
Ví dụ: chọn 40 năm.
Xác định hằng số:
MySQL [files]> select adddate(from_unixtime(0), interval 40 year);
+---------------------------------------------+
| adddate(from_unixtime(0), interval 40 year) |
+---------------------------------------------+
| 2010-01-01 01:00:00 |
+---------------------------------------------+
1 row in set (0.09 sec)
MySQL [files]> select unix_timestamp(adddate(from_unixtime(0), interval 40 year));
+-------------------------------------------------------------+
| unix_timestamp(adddate(from_unixtime(0), interval 40 year)) |
+-------------------------------------------------------------+
| 1262304000 |
+-------------------------------------------------------------+
1 row in set (0.09 sec)
Bây giờ bạn có thể mỗi unix timestamp x
giữa năm 1930 và 20XX và sử dụng nó.
select subdate(from_unixtime(x+1262304000), interval 40 year);
Với ví dụ của bạn -769338000
, bạn sẽ có được
MySQL [files]> select subdate(from_unixtime(-769338000+1262304000), interval 40 year);
+-----------------------------------------------------------------+
| subdate(from_unixtime(-769338000+1262304000), interval 40 year) |
+-----------------------------------------------------------------+
| 1945-08-15 17:00:00 |
+-----------------------------------------------------------------+
1 row in set (0.09 sec)
Sử dụng này, cảm ơn bạn :) –