获取具有特定时差的所有行

时间:2014-01-09 13:24:03

标签: mysql sql

你好,我有一个这样的表:

|user_name|pw|register_date|last_time_entered

我想得到last_seen_date - register_date<的所有行。 7

我不知道如何写这个查询我想到这样的事情

SELECT * FROM workoutlog_1.personal 
WHERE DATEDIFF(day, workoutlog_1.personal.register_date, workoutlog_1.personal.last_time_entered) < 7;

但是我收到了这个错误:

Error Code: 1582. Incorrect parameter count in the call to native function 'DATEDIFF'

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

您的错误代码似乎来自mysql。

使用mysql,datediff只需要2个参数(不需要day

我认为在(真的)旧版本中,它需要3个参数,现在它仅适用于2,它将返回几天。

如果您必须使用其他单位(例如小时),则可以使用TIMESTAMPDIFF

答案 1 :(得分:0)

MySql的DATEDIFFSqlServers DATEDIFF的不同之处在于它只需要2个日期参数,并返回天数差异。既然你想要几天,只需删除day参数,即

SELECT * FROM workoutlog_1.personal 
WHERE DATEDIFF(workoutlog_1.personal.register_date, 
               workoutlog_1.personal.last_time_entered) < 7;