旧的DATEDIFF()允许用户使用3个参数,我试图这样做,所以我可以从我的DATEDIFF中获得数小时而不是几天(我试图显示自帖子后的小时数)。在我的数据库中,我使用TIMESTAMP和这行代码来提取值,显然它不起作用,因为我有额外的参数。删除'小时'或'hh'后,查询将运行并返回以天为单位的值。
SELECT DATEDIFF(hour, CURDATE(), (SELECT Post_Date FROM Post_T WHERE pk_PostID = 1) )
我能否以简单的方式返回每小时价值?
我也在使用MYSQL版本5.5.20。
答案 0 :(得分:27)
就像它在documentation中所说的那样:
DATEDIFF(表达式1,表达式2)
DATEDIFF()返回expr1 - expr2,表示为天中的值 约会到另一个。 expr1和expr2是日期或日期和时间 表达式。只有值的日期部分用于 计算
如果您想要以小时为单位的结果,请使用Timestampdiff
TIMESTAMPDIFF(单元,datetime_expr1,datetime_expr2)
返回datetime_expr2 - datetime_expr1,其中datetime_expr1和 datetime_expr2是日期或日期时间表达式。一个表达可能是 日期和另一个日期时间;日期值被视为日期时间 必要时有时间部分'00:00:00'。单位为 result(整数)由unit参数给出。
单位参数可以是:MICROSECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, or YEAR.
在您的情况下,您可以这样做:
SELECT TIMESTAMPDIFF(hour, CURDATE(), (SELECT Post_Date FROM Post_T WHERE pk_PostID = 1) )