如何将日期舍入到最近的月份,然后在SQLLite中添加一个月?
我想在数据中添加一个月,我将其四舍五入到最低月份 在postgresql中,它的代码很简单,与如何将日期舍入到最近的月份,然后在SQLLite中添加一个月?,sql,sqlite,Sql,Sqlite,我想在数据中添加一个月,我将其四舍五入到最低月份 在postgresql中,它的代码很简单,与 with month as (select '2020-01-15' as n_month) select date_trunc('month', n_month) as floored_month, dateadd('month', 1, date_trunc('month', n_month)) as floored_month_plus_one from month 我想用SQ
with month as
(select '2020-01-15' as n_month)
select
date_trunc('month', n_month) as floored_month,
dateadd('month', 1, date_trunc('month', n_month)) as floored_month_plus_one
from month
我想用SQLLite实现相同的表
这是到目前为止我的代码
with month as
(select '2020-01-15' as n_month)
select
strftime('%Y-%m', n_month) as floored_month,
date(strftime('%Y-%m', n_month), '+1 months') as floored_month_plus_one
from month
但不幸的是,这给了我一个错误您需要day组件来按照您的方法执行此操作。因此:
with month as (
select '2020-01-15' as n_month
)
select strftime('%Y-%m', n_month) as floored_month,
date(strftime('%Y-%m', n_month) || '-01', '+1 months') as floored_month_plus_one
from month
不需要连接。
您可以使用函数和修饰符
“月初”
和“+1个月”
:
with month as (select '2020-01-15' as n_month)
select date(n_month, 'start of month') as floored_month,
date(n_month, 'start of month', '+1 month') as floored_month_plus_one
from month
看。
结果:
另一种方法是使用'strftime('%Y-%m-%d',n_month,'start of month')','然后对该值使用dateadd
> floored_month | floored_month_plus_one
> :------------ | :---------------------
> 2020-01-01 | 2020-02-01