0
我有這個疑問正在運行無差錯:數字轉換成日期時間日期在SQL Server查詢
Select
[Object],
CASE WHEN MsgID = '61' THEN SUBSTRING(Parms,35,6) END AS [MEDIA]
from JnlDataSection
WHERE [Object] = '061 STATEMENTS'
還有就是我很感興趣,此表稱爲日期第三列。然而,數據庫很早以前就已經開發出來了,並且已經將數據庫的日期變成了(numeric(17,9), not null
數據類型)。例如。 20130106.050257023
。
我想要的是分成兩個不同的列,一個是日期:2013-01-06
,第二個是時間:05:02:57
(無微秒)。
我想出了這個查詢轉換:
Select
[Object],
CAST(DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([Date],15,3))) AS DATE) 'Date',
LEFT(CAST(DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([Date],15,3))) AS TIME),8) 'Time',
CASE WHEN MsgID = '61' THEN SUBSTRING(Parms,35,6) END AS [MEDIA]
from JnlDataSection
WHERE [Object] = '061 STATEMENTS'
AND CAST(substring(convert(varchar(50), [Date]), 0, 5) + '-' +
substring(convert(varchar(50), [Date]), 5, 2) + '-' +
substring(convert(varchar(50), [Date]), 7, 2) AS DATETIME) =
CONVERT(date, DATEADD(day, -1, getdate())) --Converting
不過,我收到此錯誤,當我運行此:
消息8116,級別16,狀態1,行1
子字符串函數的參數1的參數數據類型數值無效。
任何人都可以修改我的查詢爲它運行無錯誤?這將不勝感激。
你可以在我現有的查詢中包括那個嗎?我不知道我在哪裏適合。 –
我也想立即測試它,看看它是否可以正常工作,如果可能的話,謝謝。 –