sql - 在计算列的查询中返回文本字段的好方法是什么?
问题描述
我有一个 SQLite 数据库,上面有一个成员表。我表上的列是 first_name、last_name、date_dues_paid。我需要返回标记为活动的第四列,这将是“真”或“假”,具体取决于 date_dues_paid 是一年还是更长。
我已经尝试CAST(WHEN ) AS active
并使用了 DATEDIFF() 和其他几种方法,但无法正确使用。我可以在今天晚些时候提供更多示例和代码库,现在就在移动设备上发布。
解决方案
只需将一年添加到 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
推荐阅读
- audio - 检测语音音频文件中存在非语音大声声音的位置
- python - 不理解带有以下 if 语句的 for 循环中的 Python 索引
- postgresql - Azure PostgreSQL 副本上的资源利用率提高
- javascript - React - 仅在第二次单击时起作用的功能为什么?
- egit - 如何查看 JGit RevCommit 中未跟踪的文件?
- pip - Pip 只安装我自己的包的旧版本和错误版本
- php - 如何在 laravel Blade 中使用 font awesome 5 图标?
- python - Python中算术表达式的因式分解
- algorithm - 子集计数问题,如何调试解决方案不起作用的地方?
- javascript - 从另一个文件调用 fullcalendar 函数