我有一个employees
表,其中包含一个名为start
的字段,该字段是员工开始日期的unix_timestamp。我正在使用PHP中的循环来计算他们最近的周年纪念日
$year_start = $employee['start'];
while(strtotime('+1 year', $year_start) <= time()){
$year_start = strtotime('+1 year', $year_start);
}
这很好,但我想在SQL查询中将其作为“虚拟字段”。任何人都有一个聪明的MySQL查询,它将在unix_timestamp中获得最近的周年纪念日。
答案 0 :(得分:0)
感谢Barranka警告我date_add
的存在,我想我已经找到了解决方案。
UNIX_TIMESTAMP( DATE_ADD ( FROM_UNIXTIME(start), interval +FLOOR( DATEDIFF(NOW(), FROM_UNIXTIME(start) )/365 ) year))