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

问题描述 投票:0回答:3

如何选择两个日期之间的所有行,其中日期格式为

DD.MM.YYYY

例如在

15.12.2013
25.12.2013

之间
sql sql-server date datetime
3个回答
3
投票

正如戈登和马所评论的那样,您应该认真考虑将日期存储为日期类型而不是文本。话虽这么说,您可以使用 SQL Server 的

datetime
函数将日期列转换为
CONVERT()
,然后将其与日期范围进行比较。

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,这在某些情况下也可能会中断 - 例如当用户的语言设置设置为法语时:


0
投票

我也有同样的问题。日期以东欧区域格式“dd.mm.yyyy”存储。尝试通过 vba 与此类日期交互是没有用的。相反,当切换到 yyyy/mm/dd 或 mm/dd/yyyy 区域格式时,一切正常。 如果有人设法解决这个问题,该解决方案将受到欢迎。

© www.soinside.com 2019 - 2024. All rights reserved.