我希望从 SQL Server 数据表中选择一个日期时间字段在当前日期凌晨之后的记录。
目前我使用这个方法,但还想请问是否有更有效率的方式?
WHERE start_time > (Select DATEADD(d,0,DATEDIFF(d,0,GETDATE())))
我希望从 SQL Server 数据表中选择一个日期时间字段在当前日期凌晨之后的记录。
目前我使用这个方法,但还想请问是否有更有效率的方式?
WHERE start_time > (Select DATEADD(d,0,DATEDIFF(d,0,GETDATE())))
如果你将当前日期转换或转型为日期而不是日期时间,我相信你可以在WHERE语句中使用它,因为日期数据类型被设置为午夜:
WHERE start_time > CONVERT(date, GETDATE())
或者
WHERE start_time > CAST(GETDATE() AS date)
DECLARE
@dt_now date = GETDATE();
-- requires SQL Server 2012 or later
SELECT DATETIMEFROMPARTS(YEAR(@dt_now), MONTH(@dt_now), DAY(@dt_now), 0, 0, 0, 0);
-- available for SQL Server 2005 or later
SELECT CONVERT(datetime, CAST(MONTH(@dt_now) AS varchar) + '/'
+ CAST(DAY(@dt_now) AS varchar) + '/'
+ CAST(YEAR(@dt_now) AS varchar), 101);
WHERE start_time > DATEADD(d,0,DATEDIFF(d,0,GETDATE()))
- jarlhWHERE start_time > cast(getdate() as date)
- Sean