我试图在SQLite中的SQL中获得与此查询等效的内容
SELECT DATE_ADD(now(),INTERVAL(DAYOFWEEK(S.start_date)+1)DAY)AS pymtdate FROM subscriptions
这样做的目的是我有开始日期和每周付款。我想计算一些开始日期的下一个N天(在上面的例子中为一周)的每周付款。在SQLite中,我能找到的最近的是
SELECT date('now','weekday stftime('%w',S.start_date)')AS pymtdate FROM subscriptions
但是当我尝试将工作日与计算值结合起来时,这不起作用。
有什么建议吗?
我确实使用这篇文章找到答案:sqlite return as day of week
SELECT S.subscription_id AS subid,
case cast (strftime('%w',S.start_date) as integer)
when 0 then date('now' , 'weekday 0')
when 1 then date('now' , 'weekday 1')
when 2 then date('now' , 'weekday 2')
when 3 then date('now' , 'weekday 3')
when 4 then date('now' , 'weekday 4')
when 5 then date('now' , 'weekday 5')
else date('now' , 'weekday 6') end as pymtdate
FROM subscriptions AS S
答案 0 :(得分:0)
在SQL中,任何'between quotes'
都是字符串。
你不想要字符串strftime(...)
,你想要执行这个函数,所以你必须把它写在引号之外(并将它的返回值附加到另一个字符串):
SELECT date('now', 'weekday ' || strftime('%w', S.start_date)) ...