在“一年月份”列中添加同一天

时间:2019-06-13 07:58:43

标签: sql sql-server tsql

我正在尝试在每个year_month列记录中添加第15天。

这里是我要实现的示例。这适用于所有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 个答案:

答案 0 :(得分:4)

您可以使用datefromparts()功能。它以年,月和日为参数,并从中产生一个日期。您可以对第15天进行硬编码。

select datefromparts(year, month, 15)

答案 1 :(得分:1)

使用ui:includeCAST()的另一种方法

CONCAT()

示例:SELECT CAST(CONCAT([year], '-', [month], '-15') AS DATE) 将作为SELECT CAST(CONCAT(2019, '-', 4, '-15') AS DATE)

答案 2 :(得分:0)

如果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'));

这将向表中添加一个作为日期的计算列。然后,您可以选择它,并像在其他任何列中一样在查询中使用它。