簡體   English   中英

在 sql 中將 varchar 列轉換為日期

[英]Converting varchar column to Date in sql

我正在使用 MSSQL 服務器。 我有一個名為 logDate 的列,它是 varchar 類型的。

我必須執行“我必須刪除超過 10 天的記錄”之類的操作。

我可以使用哪個查詢來執行此操作?

如何將 varchar 轉換為 Date 類型?

這里 logDate varchar 的格式為 ddmmyyyy

我搜索了幾個鏈接,但我無法執行此操作。

謝謝你的時間:)

在此處輸入圖像描述

您將使用delete 訣竅是將logdate轉換為真實日期:

delete t
    where datefromparts(right(logdate, 4), substring(logdate, 3, 2), left(logdate, 2)) < dateadd(day, -10, convert(date, getdate()));

這會將 MMDDYYYY 格式解構為年、月和日期,然后從這些組件構造日期。

注意:這假設您實際上並不關心具體時間。

另一種轉換時間的方法是使用字符串轉換:

where convert(date, right(logdate, 4) + left(logdate, 4)) < dateadd(day, -10, convert(date, getdate())

這會將字符串重組為 YYYYMMDD,這是一種標准格式,可以很容易地從字符串轉換為日期。

如果您想簡單地將其轉換為日期:

declare @date nvarchar(max) = '12032020'

select cast(substring(@date, 5, 4)+substring(@date, 3, 2)+substring(@date, 1, 2) AS date)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM