我正在嘗試使用以下代碼將資料插入 Microsoft SQL 中的 DATE 列:
INSERT INTO sde.AMD_NDVI_CAT (OBJECTID, Name, ImageDate)
VALUES (6199,'VI_{960D55A4-EEFD-45DD-80FD-81B5113C43D5}_20220122T090159', CAST('20220122T090159' AS DATE))
我得到的是:
Conversion failed when converting date and/or time from character string.
要插入ImageDate列的資料具有格式YYYYMMDDTHHMMSS。我在 Microsoft 網頁上沒有找到這種格式(https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15)。如何將其轉換為日期以便插入表中?
謝謝!
uj5u.com熱心網友回復:
由于date建議您不關心時間:
SELECT CONVERT(date, LEFT('20220122T090159', 8));
如果你也需要時間,它會變得非常難看。
DECLARE @funny_string char(15) = '20220122T090159';
SELECT TRY_CONVERT(datetime,
LEFT(@funny_string, 8) ' '
STUFF(STUFF(RIGHT(@funny_string, 6), 3, 0, ':'),6, 0, ':'));
uj5u.com熱心網友回復:
如果您需要同時捕獲日期和時間,那么我們可以使用TRY_CONVERT一些字串操作:
SELECT TRY_CONVERT(datetime,
LEFT(ts, 8) ' ' SUBSTRING(ts, 10, 2) ':'
SUBSTRING(ts, 12, 2) ':' SUBSTRING(ts, 14, 2))
FROM t;
演示
請注意,這里我20220122 09:01:59從輸入字串構建時間戳20220122T090159。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/429419.html
