SQLite从字段获取工作日日期

时间:2015-09-17 20:09:12

标签: sqlite date dayofweek

我试图在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

1 个答案:

答案 0 :(得分:0)

在SQL中,任何'between quotes'都是字符串。

你不想要字符串strftime(...),你想要执行这个函数,所以你必须把它写在引号之外(并将它的返回值附加到另一个字符串):

SELECT date('now', 'weekday ' || strftime('%w', S.start_date)) ...