Конвертировать формат даты с 20180-01-01 на 201801 - PullRequest
0 голосов
/ 26 сентября 2019

Как мне преобразовать формат 2018-01-01 в 201801?Это код, который я пробовал

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

Ответы [ 5 ]

2 голосов
/ 26 сентября 2019

Вы можете использовать опции форматирования даты с CONVERT - код, указанный ниже, внесет изменения:

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

SELECT CONVERT(varchar(6),
    CONVERT(datetime, @dateString, 120),
    112)
1 голос
/ 26 сентября 2019

Вы можете отобразить год и месяц с этим форматом с помощью функции FORMAT.

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

Но результат не DATE datatype, так что вы не сможете выполнять функции даты против него.Кроме того, FORMAT не лучший результат, если вы планируете делать это миллионы раз.

0 голосов
/ 26 сентября 2019

Вы можете использовать ЛЕВЫЙ оператор вместе с CONVERT, как указано ниже.в идеале, я бы посоветовал вам хранить данные в правильном типе данных DATE.Это просто ггггММ.Вы должны хранить только в поле CHAR.

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

SELECT LEFT(CONVERT(char(8),@test,112),6)
0 голосов
/ 26 сентября 2019

Если вы также хотите включить месяц и дату, вы можете использовать

select convert(varchar, getdate(), 112)

или вы можете использовать это только для года и месяца

select left(convert(varchar, getdate(), 112),6)
0 голосов
/ 26 сентября 2019

, если при таком способе форматирования даты мы должны преобразовать, как это

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

или в точности так, как форма getdate () означает

SELECT FORMAT(GETDATE(), 'yyyyMM')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...