我有一個客戶數據庫,其中包括LMD(上次修改日期)數據類型是日期和LMT(上次修改時間)數據類型是int。我需要從這個LMD和LMT列創建一個日期時間。這裏是行,如何將單獨的日期和時間列組合到DateTime中?
LMD LMT
2014-09-03 172351
我有一個客戶數據庫,其中包括LMD(上次修改日期)數據類型是日期和LMT(上次修改時間)數據類型是int。我需要從這個LMD和LMT列創建一個日期時間。這裏是行,如何將單獨的日期和時間列組合到DateTime中?
LMD LMT
2014-09-03 172351
您可以使用記名錶決和模抽取所需零件DATEADD
declare @datefield date
declare @timefield int
set @datefield='20140910'
set @timefield=121314
Select CAST(@datefield AS DATETIME) + DATEADD(HOUR,@timefield/10000,0) + DATEADD(MINUTE,@timefield/100 % 100,0)+ DATEADD(SECOND,@timefield % 100,0)
Select CAST(LMD AS datetime) + DATEADD(HOUR,LMT/10000,0) + DATEADD(MINUTE,LMT/100 % 100,0)+ DATEADD(SECOND,LMT % 100,0), LMT, LMD
FROM MyTable
感謝它很好 – user960567 2014-09-10 16:18:11
這工作使用TIMEFROMPARTS
並將其添加到日期。
select cast(LMD as datetime) + cast(timefromparts(substring(cast(lmt as varchar), 1, 2), substring(cast(lmt as varchar), 3, 2), substring(cast(lmt as varchar), 5, 2),0,0) as datetime)
from yourTable
如果小時是1位數,它將無法工作? – user960567 2014-09-10 16:17:38
如果LMD是日期和LMT是一個int:
SELECT
DATETIMEFROMPARTS(
YEAR(LMD),
MONTH(LMD),
DAY(LMD),
(LMT/10000) % 100,
(LMT/100) % 100,
LMT % 100, 0
)
獲取'參數1的子字符串函數的參數數據類型int無效.' – user960567 2014-09-10 16:14:53
哦,我以爲是一個字符,我的壞,將更新我的答案。 – jpw 2014-09-10 16:15:20
那是17:23:51嗎? HH:MM:SS? – SQLChao 2014-09-10 15:56:38
不知道,但我認爲呢? – user960567 2014-09-10 15:59:00