请参阅下面的SQL:
select cast('13/01/2015' as datetime)
错误是:'将varchar数据类型转换为日期时间数据类型导致超出范围的值'。我知道我能解决这个问题:
select cast('01/13/2015' as datetime)
有没有办法格式化以下字符串:' 13/01/2015'作为' 01/13 / 2015'
答案 0 :(得分:1)
不要使用演员表,请使用Convert。这样你可以选择日期格式。
select convert(datetime, '13/01/2015', 103)
select convert(datetime, '01/13/2015', 101)
答案 1 :(得分:0)
您可以设置日期格式并执行类似
的操作set dateformat dmy
select cast('13/01/2015' as datetime)
答案 2 :(得分:0)
你可以尝试:
SELECT CONVERT(CHAR(10),CONVERT(DATETIME,'13/01/2015',103),101))
这会将字符串转换为DD / MM / YYYY格式的日期时间,然后将其转换为您要查找的MM / DD / YYYY格式。
编辑注意:我注意到你想要一个字符串中的结果。
答案 3 :(得分:0)
我会使用CONVERT,但是如果您选择使用CAST,那么您可能想尝试这个......
SET LANGUAGE british
SELECT CAST('13/01/2015' AS Datetime)
SET LANGUAGE us_english
SELECT CAST('01/13/2015' AS Datetime)
但这仍然无法解决您的格式问题。这就是为什么我会使用..
CONVERT(DATETIME,'01/13/2015',101)