我想将iI设置的varchar值转换为日期时间值。我想将数据库的行加载到另一个数据库中,但转换进展不顺利。
这是我的疑问:
select Krant
, cast(jaar as varchar(4))+'-'
+RIGHT('0'+cast(maand as varchar(2)),2)+'-'
+RIGHT('0'+cast(dag as varchar(2)),2) as datum
, Inhoud as artikel
, LEN(Inhoud)-LEN(Replace(Inhoud,' ','')) as numwords
, 'Goirle' as vestiging
from [Sitecore_Bibliotheekmb_Krantenknipsel].[dbo].[KRANGOI]
对Datum的强制转换必须是日期时间值,但我没有让它正常工作。当我试图投射到日期时,它给了我一个out of range
例外。
以下是此查询的结果:
alt text http://94.100.115.48/837450001-837500000/837478801-837478900/837478868_5_dE_7.jpeg
我希望“基准”字段是具有相同值但具有日期时间格式的日期时间字段。有人可以帮我吗:)。
谢谢,
尤尼斯
答案 0 :(得分:1)
使用此:
select Krant, cast(cast(jaar as varchar(4))+'-'
+RIGHT('0'+cast(maand as varchar(2)),2)+'-'
+RIGHT('0'+cast(dag as varchar(2)),2) as datetime) as datum,
Inhoud as artikel,
LEN(Inhoud)-LEN(Replace(Inhoud,' ','')) as numwords,
'Goirle' as vestiging
from [Sitecore_Bibliotheekmb_Krantenknipsel].[dbo].[KRANGOI]
答案 1 :(得分:0)
您没有将变量转换为日期时间
你可以试试这个:
SELECT CAST(('2010' + '-' + '01' + '-' + '06') AS DATETIME)
答案 2 :(得分:0)
如果您的任何日期早于1753年,则简单的日期时间类型将不足够。为此,您需要使用SQL Server 2008中引入的datetime2数据类型。
同时检查 maand 和 dag 的所有值是否为有效日期和月份。