DATEDIFF()参数问题

时间:2013-09-20 20:44:19

标签: mysql date datediff

旧的DATEDIFF()允许用户使用3个参数,我试图这样做,所以我可以从我的DATEDIFF中获得数小时而不是几天(我试图显示自帖子后的小时数)。在我的数据库中,我使用TIMESTAMP和这行代码来提取值,显然它不起作用,因为我有额外的参数。删除'小时'或'hh'后,查询将运行并返回以天为单位的值。

SELECT DATEDIFF(hour, CURDATE(), (SELECT Post_Date FROM Post_T WHERE pk_PostID = 1) )

我能否以简单的方式返回每小时价值?

我也在使用MYSQL版本5.5.20。

1 个答案:

答案 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) )