我正在尝试转换
@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数据类型转换为日期时间数据类型导致值超出范围。
请帮忙,谢谢。
试试这个:
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)
Result: 2016-05-25 09:00:00.0000000
(datetime2
)
感谢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`
add this statement before convert
SET DATEFORMAT DMY
so query看起来像这样
SET DATEFORMAT DMY
SELECT CONVERT(datetime, '25/05/2016 09:00')