你好,我有一个这样的表:
|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'
感谢您的帮助。
答案 0 :(得分:5)
您的错误代码似乎来自mysql。
使用mysql,datediff只需要2个参数(不需要day
)
我认为在(真的)旧版本中,它需要3个参数,现在它仅适用于2,它将返回几天。
如果您必须使用其他单位(例如小时),则可以使用TIMESTAMPDIFF
答案 1 :(得分:0)
MySql的DATEDIFF与SqlServers DATEDIFF的不同之处在于它只需要2个日期参数,并返回天数差异。既然你想要几天,只需删除day
参数,即
SELECT * FROM workoutlog_1.personal
WHERE DATEDIFF(workoutlog_1.personal.register_date,
workoutlog_1.personal.last_time_entered) < 7;