我在將下面轉換為 DateTime 時遇到問題,我只能獲取字串的日期部分。我的目標是同時獲得日期和時間。
declare @col varchar(14) = '20220602235900';
select CONVERT(datetime, CAST(@col AS varchar(8)), 121) dtimecre
uj5u.com熱心網友回復:
腳步:
- 閱讀檔案
CONVERT并選擇最接近的格式來使用 - 做一些字串操作以獲得所需的格式
- 兌換。
DECLARE @col varchar(14) = '20220602235900';
SELECT
CONVERT(date, SUBSTRING(@col,1,8), 121) [Date Component]
, CONVERT(time, SUBSTRING(@col,9,2) ':' SUBSTRING(@col,11,2) ':' SUBSTRING(@col,13,2), 8) [Time Component]
, CONVERT(datetime, SUBSTRING(@col,1,4) '-' SUBSTRING(@col,5,2) '-' SUBSTRING(@col,7,2) ' ' SUBSTRING(@col,9,2) ':' SUBSTRING(@col,11,2) ':' SUBSTRING(@col,13,2), 120) [DateTime Representation];
回報:
| 日期組件 | 時間分量 | 日期時間表示 |
|---|---|---|
| 2022-06-02 | 23:59:00.0000000 | 2022-06-02 23:59:00.000 |
uj5u.com熱心網友回復:
還有一個數量較少的變體SUBSTRING:
DECLARE @col varchar(14) = '20220602235900';
SELECT DateComponent = CAST(DatePartString AS DATE),
TimeComponent = CAST(TimePartString AS TIME),
DateAndTime = CAST(DatePartString ' ' TimePartString AS DATETIME)
FROM (VALUES(@col)) AS O (DateColumn)
CROSS APPLY (
SELECT DatePartString = LEFT(DateColumn, 8),
TimePartString = FORMAT(CAST(SUBSTRING(DateColumn, 9, 6) AS INT), '##:##:##')
) AS String;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/492726.html
