我正在尝试转换
@string='25/05/2016 09:00'
到2016-05-25 09:00
。
@string
是@string2='25/05/2016'
和@string3='09:00'
当我尝试使用
执行此操作时CONVERT(datetime, '25/05/2016 09:00')
我收到以下错误
将varchar数据类型转换为日期时间数据类型会导致超出范围的值。
请帮助,谢谢。
答案 0 :(得分:6)
试试这个:
SELECT CONVERT(datetime2, '25/05/2016 09:00', 103)
convert
方法有3个参数:第一个是目标数据类型,第二个是要转换的表达式,第三个是样式。在这种情况下,103代表英国或法国日期格式,即dd/mm/yyyy
。
Declare @string char(10)='25/05/2016'
Declare @string2 char(5)='09:00'
SELECT CONVERT(datetime2, @string + ' ' + @string2, 103)
结果:2016-05-25 09:00:00.0000000
(datetime2
)
答案 1 :(得分:0)
感谢marc_s以我的查询格式正确。
我试过这个并得到了预期的结果,请告知是否有其他最佳方式,谢谢
`Declare @string varchar(20)='25/05/2016'
Declare @string2 varchar(20)='09:00'
Declare @string3 Varchar(20)=(SELECT Right(@string,4)+'-'+SUBSTRING(@string,4,2)+'-'+LEFT(@string,2)+' '+@string2)
Select CONVERT(datetime,@string3) as _datetime`
答案 2 :(得分:0)
在转换
之前添加此语句SET DATEFORMAT DMY
所以查询看起来像这样
SET DATEFORMAT DMY
SELECT CONVERT(datetime, '25/05/2016 09:00')