0

我正在尝试从我的数据库中提取数据并DATE通过使用它来组织它,UNIX_TIMESTAMP但它似乎无法正常工作。这只是我失败的尝试之一。我遇到的问题是我试图将Field表中的 a 转换为 UnixTimeStamp,但它似乎不起作用。这个查询的目的是拉取所有未来的生日,如果生日已经过去,我们在hasItPassed列中给它一个'0'值,如果没有,我们给它一个'1'值。我试图组织这张表的方式是列出所有即将到来的生日(最接近的生日在顶部),并且所有已经过去的生日都在列表的底部。

(EXAMPLE) bDay.date format --> '10/07/2013'

所以我的问题是,有谁知道将数据库中的日期字段转换为 unixTime 格式的最佳方法?这个例子中发生的事情是在我的领域中,当事实上一些日期还没有过去时hasItPassed,一切都变成了(所以有些应该有 a而不是 a )。因此,我知道我在转换时遇到了问题。010

SELECT bDay.id, bDay.userid, bDay.summary,
bDay.time_create, bDay.Address, bDay.date, bDay.time, 
CASE WHEN UNIX_TIMESTAMP(bDay.date) >= NOW( ) 
THEN  '1'
ELSE  '0'
END AS hasItPassed
FROM 
BirthdayTable
WHERE
ORDER BY hasItPassed DESC , 
CASE WHEN hasItPassed =1
THEN date
END ASC , 
CASE WHEN hasItPassed =0
THEN date
END DESC 

如果有任何混淆,请告诉我,我将重新格式化问题。谢谢你们!!!

4

1 回答 1

0

要么让你的比较比较日期或时间戳 - 你把它弄混了。例如

bDay.date >= date(NOW()) 

或者

UNIX_TIMESTAMP(bDay.date) >= UNIX_TIMESTAMP(NOW()) 
于 2013-10-07T22:19:23.503 回答