在DD.MM.YYYY格式的日期之间选择?

时间:2017-02-20 12:55:24

标签: sql sql-server date datetime

如何选择两个日期之间的所有行,其中dateformat为DD.MM.YYYY

例如15.12.201325.12.2013

之间

2 个答案:

答案 0 :(得分:3)

正如戈登和马的评论,你应该认真考虑将日期存储为日期类型而不是文本。话虽这么说,您可以使用SQL Server的datetime函数将日期列转换为CONVERT(),然后将其与日期范围进行比较。

SELECT *
FROM yourTable
WHERE CONVERT(datetime, date_col, 104) BETWEEN '2013-12-15' AND '2013-12-25'

答案 1 :(得分:2)

使用datetime并使用between,而不是转换为YYYY-MM-DD; 我建议您使用date>= and <=转换为YYYYMMDD

select *
from t
where convert(date, date_col, 104) >= '20131215' 
  and convert(date, date_col, 104) <= '20131225'
  

例如,即使您尝试使用看似明确的YYYY-MM-DD,在某些情况下也会出现这种情况 - 例如当用户的语言设置设置为法语时: