我必须从varchar列中读取日期,其中包含以下可能的模式(月/日/年):
1/1/2005
1/13/2005
10/9/2005
10/13/2005
使用T-SQL读取这些日期的日期部分的正确方法是什么?
答案 0 :(得分:2)
转换到日期并使用day()将是正确的方法imo:
declare @t table (string varchar(10))
insert @t values ('1/1/2005'),('1/13/2005'),('10/9/2005'),('10/13/2005')
select day(cast(string as date)) as the_day from @t
会给:
the_day
-----------
1
13
9
13
如果您想避免投射,另一种方法是使用substring
和charindex
函数:
select
substring(
string,
charindex('/', string)+1,
charindex('/', string, charindex('/', string)+1)-charindex('/', string)-1
)
from @t