gpt4 book ai didi

mysql - 1970年之前使用unix时间戳和mysql查询即将到来的出生日期问题

转载 作者:行者123 更新时间:2023-11-30 01:19:34 26 4
gpt4 key购买 nike

我需要此查询的帮助

现在我使用unix时间戳来保存用户的出生日期

我有一个查询来获取用户即将出生的日期。它仅适用于 1970 年之后的 dob,例如 1986-09-18 (Y-m-d)
但它在 1970 年之前不起作用,例如 1969-09-18 (Y-m-d)

SELECT u.id, u.dob
FROM hrs_employee_details u
WHERE CONCAT( IF( MONTH( FROM_UNIXTIME( u.dob ) ) =1 AND MONTH( CURRENT_DATE( ) ) = 12, YEAR( CURRENT_DATE( ) ) +1, YEAR( CURRENT_DATE( ) ) ) , DATE_FORMAT( FROM_UNIXTIME( u.dob ) , '-%m-%d' ) )
BETWEEN CURRENT_DATE() AND DATE_ADD( CURRENT_DATE() , INTERVAL 14 DAY ) AND u.dob <> '' ;

请尽快帮助我提前致谢...

最佳答案

如前所述,使用 DATE(TIME) 字段来实现此目的,使用起来要容易得多。

但要获取负时间戳的年龄:

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(DATE_ADD(FROM_UNIXTIME(0), INTERVAL dob second))), '%Y')+0 AS age FROM hrs_employee_details

关于mysql - 1970年之前使用unix时间戳和mysql查询即将到来的出生日期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18698457/

26 4 0