繁体   English   中英

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

[英]Get all rows with specific time difference

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

|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'

感谢您的帮助。

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

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

我认为在(确实)旧版本中,它使用了3个参数,现在仅对2个有效,并且将返回几天。

如果您必须与另一个单位(例如小时)一起工作,则可以使用TIMESTAMPDIFF

MySql的DATEDIFFSqlServers DATEDIFF的不同之处在于,它仅接受2个日期参数,并以天为单位返回差值。 既然您仍然想要几天,则只需删除day参数,即

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM