Добавить тот же день в столбце годовой месяц - PullRequest
1 голос
/ 13 июня 2019

Я пытаюсь добавить день 15 в каждую запись столбца year_month.

Вот пример того, чего я хочу достичь. Это относится ко всей записи year_month. В основном все записи year_month должны содержать 15 после месяца

С

year    month   year_month
-----------------------------
2019    4       2019-04 
2019    6       2019-06

К

year    month   year_month
-----------------------------
2019    4       2019-04-15
2019    6       2019-06-15

Пока не пробовал ни одного кода, если честно, я не знаю с чего начать.

Ответы [ 3 ]

4 голосов
/ 13 июня 2019

Вы можете использовать функцию datefromparts(). Он принимает год, месяц и день в качестве аргумента и выдает дату из него. Вы можете жестко закодировать день 15.

select datefromparts(year, month, 15)
1 голос
/ 13 июня 2019

Еще один способ использовать CAST() и CONCAT()

SELECT CAST(CONCAT([year], '-', [month], '-15') AS DATE)

Пример: SELECT CAST(CONCAT(2019, '-', 4, '-15') AS DATE) приведет к 2019-04-15

0 голосов
/ 13 июня 2019

Если year_month является строкой, то:

update t
     set year_month = year_month + '-15';

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

alter table t alter year_month date;

Или, если вы просто хотите указать дату в таблице при ее выборе:

alter table t add year_month_date as (convert(date, year_month + '-15'));

Это добавляет вычисляемый столбец, который является датой таблицы. Затем вы можете выбрать его и использовать в запросах, как в любом другом столбце.

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