簡體   English   中英

SQL Server:日期轉換問題?

[英]SQL Server: Date conversion problem?

我有一列具有這樣的日期值存儲在varchar(格式ddmmyy)中的列

231280
121280
131185
...

如何將這些值轉換為日期時間數據類型?

由於此格式是非標准格式,因此請使用

DECLARE @field char(6)
SET @field = '231280'
select convert(datetime, right(@field, 2) +   substring(@field, 3, 2) + left(@field, 2)  , 12)

使用子字符串獲取年,月和日,如果年份大於11,則將其添加19(如果未添加20),則以格式2009獲得年份,但這是您的查詢,而不是字符串,添加了列名

 select CAST(
            CASE WHEN CAST(SUBSTRING('231280', 5, 2) AS INT) >11
                    THEN '19'+SUBSTRING('231280', 5, 2) 
                    else '20'+SUBSTRING('231280', 5, 2) 
                END 
        +'-'+SUBSTRING('231280', 3, 2)+'-'+SUBSTRING('231280', 1, 2) as datetime)

您必須使用一些子字符串步法將您的字符串轉換為已知的日期格式 這是將字符串轉換為格式3“ British / French”的示例:

declare @YourTable table (YourColumn varchar(50))
insert @YourTable
          select '231280'
union all select '121280'
union all select '131185'

select  convert(datetime, substring(YourColumn,1,2) + '/' + 
    substring(YourColumn,3,2) + '/' + substring(YourColumn,5,2), 3)
from    @YourTable
Set DateFormat DMY
GO
Select Cast(Stuff(Stuff(SomeValue, 3, 0, '-'), 6, 0, '-') As datetime)
From MyData

暫無
暫無

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

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