2017-02-20 28 views
1

如何选择日期格式为DD.MM.YYYY的两个日期之间的所有行?在DD.MM.YYYY格式的日期之间进行选择?

例如15.12.201325.12.2013

+3

修复您的数据存储日期为日期,而不是字符串。 –

+6

日期没有格式。你是否将它们存储为'varchar'? –

回答

2

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

SELECT * 
FROM yourTable 
WHERE CONVERT(datetime, date_col, 104) BETWEEN '2013-12-15' AND '2013-12-25' 
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,这可能会在某些情况下中断 - 例如当用户的语言设置设置为法语时:

相关问题