我正在varchar(50)
列中存储一个日期,例如thie:
1/01/2018
我想将它们转换为Datetime值,例如:2018-01-22 00:00:00.0000000
我的SQL就像;
select
[Site],
CONVERT(VARCHAR(50), CAST([InvDay] AS DATETIME), 101) as Date,
from tableA;
但是我得到了
将varchar数据类型转换为datetime数据类型会导致超出范围的值。
我也这样尝试过,但是有同样的错误;
CONVERT(datetime, [InvDay]) as Date,
我该如何做?
答案 0 :(得分:0)
查看无法转换的值:
select invday
from tableA
where try_cast(invday as date) is null and invday is not null;
也不清楚您的格式是mm / dd / yyyy还是dd / mm / yyyy。您可以使用convert()
指定格式:
-- mm/dd/yyyy
select invday
from tableA
where try_convert(date, invday, 101) is null and
invday is not null;
-- dd/mm/yyyy
select invday
from tableA
where try_convert(date, invday, 103) is null and
invday is not null;
答案 1 :(得分:0)
我认为您想使用set dateformat dmy
。这是一个示例:
declare @d varchar(15)
set @d='13/1/2018'
set dateformat dmy
select convert(datetime,@d)