【发布时间】:2012-09-24 12:25:03
【问题描述】:
我正在尝试显示从今天的日期起 30 天的日期(我在表中有一个日期列)的记录。一旦它显示出来,我需要通过添加 Date= 今天的日期的详细信息来创建新记录。 我试过这个:
select * from
paymenthist
where
Date = CONVERT(datetime, CONVERT(varchar, DATEADD(day, -30, GETDATE()), 101))
但是所有记录都在显示..
【问题讨论】:
-
您在下面有几个答案,您需要考虑转换/转换表中每条记录的严重性能影响。
-
转换成
VARCHAR再转回DATE的任何理由? -
您是要获取 30 天前的特定日期还是从现在到 30 天前的几天范围?无论哪种方式,如果“日期”字段的类型为日期时间(或日期时间 2)而不是日期类型,那么您需要搜索一个时间范围,从第一天开始,直到但不包括最后一天之后的一天的开始。即,“其中 Date > x AND Date
-
我正在尝试仅获取 30 天前特定日期的所有记录。使用上面的方法会出现错误:从 char 转换为 datetime 导致超出范围值!!
标签: sql-server date-comparison date-math