我有一个以YYYYMMDD格式表示日期的Decimal列(Decimal (8,0))。例如,20200101。现在,我想要20191001英镑。我该怎么做?
发布于 2020-01-29 08:09:29
注意:在本例中,带有int数据类型的列称为date_col,表称为test。
在SQLSERVER上试一试
select dateadd(DAY, -90, convert(date, convert(char(8), date_col, 23)))
from test;DATEADD将从该日期起90天内减除。
下面是如何得到准确的结果20191001
select convert(char(8), dateadd(DAY, -92, convert(char(8), date_col)), 112)
from test;在DB2上试试这个
select date(to_date(date_col, 'yyyymmdd')) - 90 days
from test;我看到您想要确切的20191001结果。下面是DB2的示例:
select to_char(to_date(date_col, 'yyyymmdd') - 92 days, 'yyyymmdd')
from test;发布于 2020-01-29 08:24:50
select CONVERT(varchar, dateadd(dd, -92, convert(date, convert(varchar, '20200101'))), 112)发布于 2020-01-29 09:11:11
https://stackoverflow.com/questions/59962676
复制相似问题