使用子字符串和Concat

时间:2018-07-13 12:54:48

标签: sql sql-server formatting

我在数据库中将以下日期20180305存储为varchar(8)。

我想将日期格式切换为DDMMYYYY

我可以看到使用子字符串拆分了元素-如下所示

Substring ([Transaction Date],7,2) [Accounting Period] ,
        Substring ([Transaction Date],5,2) [Accounting Period],
        Substring ([Transaction Date],1,4) [Accounting Period] 

但是如何将它们与CONCAT结合?

谢谢

2 个答案:

答案 0 :(得分:2)

不!更改数据结构:

alter table t alter column [Transaction Date] date;

您很幸运。您的格式将正确转换。

然后,如果需要特定格式,请使用计算列:

alter table t add column transaction_date_mmddyyyy as
    (replace(convert(varchar(10), [Transaction Date], 105), '-', '') )

然后,您可以使用日期-作为日期,以正确的方式存储它。您还可以获取所需的演示文稿格式。

答案 1 :(得分:0)

似乎您正在使用SQL Server,如果可以,则可以使用:

SELECT REPLACE(CONVERT(VARCHAR(10), CAST('20180305' AS date), 105), '-','') AS [Accounting Period]
FROM table t;