我有這個(gè)查詢的問(wèn)題。我在下面收到以下錯(cuò)誤。我想要做的是將 10:00 PM 轉(zhuǎn)換為 22:00,基本上從 12 小時(shí)格式轉(zhuǎn)換為 24 小時(shí)格式。消息 241,級(jí)別 16,狀態(tài) 1,第 2 行 從字符串轉(zhuǎn)換日期和/或時(shí)間時(shí)轉(zhuǎn)換失敗。schedulename 列的值為晚上 10:00 - 早上 06:00晚上 10:00 - 早上 06:00和一行稱為REST我將它設(shè)置為L(zhǎng)EFT(schedulename,8)這樣我可以在左側(cè)獲得時(shí)間表,然后RIGHT(schedulename,8)在右側(cè)獲得時(shí)間表。我正在使用 SQLSRV、SQLSERVER 2012 和 XAMPP。SELECT Format(cast(LEFT(schedulename,8) as datetime),'HH:mm:ss') AS login,Format(cast(RIGHT(schedulename,8) as datetime),'HH:mm:ss') AS logout FROMemployeesschedulelist WHERE employeeidno='D0150000005'我也試過(guò)這個(gè),但沒有運(yùn)氣。SELECT CONVERT(VARCHAR, LEFT(schedulename,8), 108) as login, CONVERT(VARCHAR, RIGHT(schedulename,8), 108) as logout from employeesschedulelist where employeeidno='D0150000005'在不更改我的專欄的情況下,還有其他解決方案嗎?
2 回答

阿波羅的戰(zhàn)車
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以使用TRY_CAST()代替CAST(). 如果轉(zhuǎn)換失敗,它將返回NULL。
SELECT FORMAT(TRY_CAST(LEFT(schedulename ,8) AS DATETIME),'HH:mm:ss') AS login,
FORMAT(TRY_CAST(RIGHT(schedulename, 8) AS DATETIME),'HH:mm:ss') AS logout
FROM employeesschedulelist
WHERE employeeidno = 'D0150000005'

Smart貓小萌
TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊
試試這個(gè)。
SELECT
CONVERT(TIME,(LEFT(schedulename,8))) AS login,
CONVERT(TIME,(RIGHT(schedulename,8))) AS logout
FROM employeesschedulelist
WHERE employeeidno='D0150000005'
- 2 回答
- 0 關(guān)注
- 1109 瀏覽
添加回答
舉報(bào)
0/150
提交
取消