将字符串格式化为American

时间:2015-04-08 15:54:03

标签: sql sql-server

请参阅下面的SQL:

select cast('13/01/2015' as datetime)

错误是:'将varchar数据类型转换为日期时间数据类型导致超出范围的值'。我知道我能解决这个问题:

select cast('01/13/2015' as datetime)

有没有办法格式化以下字符串:' 13/01/2015'作为' 01/13 / 2015'

4 个答案:

答案 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)