将日期格式从20180-01-01转换为201801

时间:2019-09-26 08:44:31

标签: sql sql-server

如何将格式2018-01-01转换为201801?这是我尝试过的代码

SELECT DATEFROMPARTS ( DATEPART(yyyy, GETDATE()) - 1, 1, 1 )

5 个答案:

答案 0 :(得分:2)

您可以在CONVERT中使用日期格式选项-以下代码将进行更改:

DECLARE @dateString varchar(10)
SET @dateString = '2018-01-01'

SELECT CONVERT(varchar(6),
    CONVERT(datetime, @dateString, 120),
    112)

答案 1 :(得分:1)

您可以使用FORMAT功能以该格式 显示

SELECT FORMAT(GETDATE(), N'yyyyMM')

但是结果不是DATE数据类型,因此您将无法对其执行日期函数。如果您计划进行数百万次操作,那么FORMAT也不是最佳的性能。

答案 2 :(得分:0)

如果采用这种格式化日期的方式,我们必须像这样进行转换

 select concat(year('2018-01-01'),FORMAT(month('2018-01-01'), '00') )

或完全按照getdate()表格的意思

SELECT FORMAT(GETDATE(), 'yyyyMM')

答案 3 :(得分:0)

如果您还希望包括月份和日期,则可以使用

select convert(varchar, getdate(), 112)

或者您只能将其用于年份和月份

select left(convert(varchar, getdate(), 112),6)

答案 4 :(得分:0)

您可以将LEFT运算符与CONVERT一起使用,如下所示。理想情况下,我建议您将数据存储在正确的DATE数据类型中。这只是yyyyMM。您只需要存储在CHAR字段中即可。

DECLARE @test date = '2018-01-01'

SELECT LEFT(CONVERT(char(8),@test,112),6)