我試圖將開始日期和開始時間從具有日期時間范圍的列中的選擇查詢中的 2 個單獨的列中獲取。
| 日期 |
|---|
| 1/1/22 12:00 下午 - 1/1/22 12:59 下午 |
| 22 年 1 月 1 日下午 1:00 - 22 年 1 月 1 日下午 1:59 |
| 12/31/21 7:00 am - 12/31/21 7:59 am |
| 12/31/21 11:00 am - 12/31/21 11:59 am |
到目前為止,我可以使用以下方法來確定開始日期:
LTRIM(RTRIM(CONVERT(DATE,RTRIM(LTRIM(LEFT([Date], CHARINDEX(' ',[Date]) 0))))))
我的開始時間遇到錯誤,我現在的代碼是這樣的:
RTRIM(LTRIM(FORMAT(CAST(REPLACE(REPLACE(RTRIM(LTRIM(RIGHT(RIGHT(LEFT([Date], CHARINDEX('-', [Date]) - 1), LEN(LEFT([Date], CHARINDEX('-', [Date]) - 1)) - CHARINDEX('/21 ',LEFT([Date], CHARINDEX('-', [Date]) - 1))),LEN(RIGHT(LEFT([Date], CHARINDEX('-', [Date]) - 1), LEN(LEFT([Date], CHARINDEX('-', [Date]) - 1)) - CHARINDEX('/21 ',LEFT([Date], CHARINDEX('-', [Date]) - 1)))) - 1))),'am','AM'),'pm','PM') AS datetime),'hh:mm tt')))
我希望格式為 hh:mm am/pm。我認為導致錯誤的原因是字符的計數/索引,但我不確定如何解決這個問題。
這是我想要的結果:
| 日期 | 時間 |
|---|---|
| 1/1/22 | 12:00 PM |
| 1/1/22 | 1:00 PM |
| 12/31/21 | 7:00 AM |
| 12/31/21 | 11:00 AM |
uj5u.com熱心網友回復:
使用基本字串函式,我們可以嘗試:
SELECT
Date,
LEFT(Date, CHARINDEX(' ', Date) - 1) AS Date,
SUBSTRING(Date,
CHARINDEX(' ', Date) 1,
CHARINDEX(' ', Date, CHARINDEX('-', Date) 1) -
CHARINDEX(' ', Date) - 3) AS Time
FROM yourTable;

演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/402655.html
標籤:
下一篇:DbContextTransaction.Commit()和context.Database.CommitTransaction()的區別
