首页 > 解决方案 > 在计算列的查询中返回文本字段的好方法是什么?

问题描述

我有一个 SQLite 数据库,上面有一个成员表。我表上的列是 first_name、last_name、date_dues_paid。我需要返回标记为活动的第四列,这将是“真”或“假”,具体取决于 date_dues_paid 是一年还是更长。

我已经尝试CAST(WHEN ) AS active并使用了 DATEDIFF() 和其他几种方法,但无法正确使用。我可以在今天晚些时候提供更多示例和代码库,现在就在移动设备上发布。

标签: sqlsqlite

解决方案


只需将一年添加到 date_dues_paid 并将其与当前日期进行比较,如下所示:

SELECT
    first_name,
    last_name,
    date_dues_paid,
    SELECT CASE WHEN DATE(date_dues_paid,'+1 year') > DATE('now') THEN 'TRUE' ELSE 'FALSE' END AS active
FROM members

作为结果,您也可以使用 bool (1,0) 而不是 TRUE/FALSE 字符串:

SELECT DATE(date_dues_paid,'+1 year') > DATE('now') AS active

推荐阅读