我需要将下面的Prelim Date字段转换为日期类型。
select
[Initial Rated Date/Time],
floor(convert(numeric(10,2),[Initial Rated Date/Time])-.08333333) as 'Prelim Date'
from [AX2cTest].[dbo].[AAATRANSPORTTABLE_V]
样本数据:
Initial Rated Date/Time Prelim Date
2020-08-03 02:01:00.000 44046
2020-08-03 01:59:00.000 44045
我需要这个:
Initial Rated Date/Time Prelim Date
2020-08-03 02:01:00.000 2020-08-03
2020-08-03 01:59:00.000 2020-08-02
我尝试了这两个查询,但收到以下错误:
select
[Initial Rated Date/Time],
convert(date,floor(convert(numeric(10,2),[Initial Rated Date/Time])-.08333333)) as 'Prelim
Date'
from [AX2cTest].[dbo].[AAATRANSPORTTABLE_V]
错误:不允许从数字类型的数据类型到日期的明确转换。
with Prelim_Rpt_Date_CTE (Prelim_Rpt_Date) as (select
floor(convert(numeric(10,2),[Initial Rated Date/Time])-.08333333)
from [AX2cTest].[dbo].[AAATRANSPORTTABLE_V])
select convert(date,Prelim_Rpt_Date)
from Prelim_Rpt_Date_CTE;
错误:不允许从数字类型的数据类型到日期的明确转换。
如何解决此错误?
答案 0 :(得分:2)
您似乎想要这样的东西:
select convert(date, dateadd(hour, -2, [Initial Rated Date/Time]))
我不确定为什么要让数字,整数和浮点数参与简单的日计算。