sql - 大查询:使用 between 函数对“日期”使用 case 命令
问题描述
我正在使用以下代码在我的数据库中创建一个包含季节的新列。
SELECT date,
CASE
WHEN date between DATE('2020-01-1') AND DATE('2020-03-20') THEN 'Winter'
WHEN date between DATE('2020-03-21') AND DATE('2020-06-21') THEN 'Spring'
WHEN date between DATE('2020-06-22') AND DATE('2020-08-23') THEN 'Summer'
WHEN date between DATE('2020-08-24') AND DATE('2020-12-21') THEN 'Fall'
END as season
FROM t
当我尝试运行此代码时,出现以下错误:
No matching signature for operator CASE for argument types: DATE, BOOL, STRING, BOOL, STRING, BOOL, STRING, BOOL, STRING, NULL at [2:7]
我不明白问题是什么。你能帮忙吗?谢谢
解决方案
Mikhail 指出,您可能在自己的工作区中有不同的查询。
您可以看到下面的查询工作正常:
with t AS (select DATE '2020-1-1' date)
SELECT date,
CASE
WHEN date between DATE('2020-01-1') AND DATE('2020-03-20') THEN 'Winter'
WHEN date between DATE('2020-03-21') AND DATE('2020-06-21') THEN 'Spring'
WHEN date between DATE('2020-06-22') AND DATE('2020-08-23') THEN 'Summer'
WHEN date between DATE('2020-08-24') AND DATE('2020-12-21') THEN 'Fall'
END as season
FROM t
推荐阅读
- typescript - @Tree('closure-table') 实体的 TypeORM 迁移文件
- c# - MudBlazor 动态选项卡通过组件中的 foreach
- excel - 查询不想完成的网址
- html - 向下拉菜单添加溢出隐藏子菜单
- c# - EF-Core:Equals() 无法检查 null
- git - Git rebase 失败并出现错误:您对以下文件的本地更改可能会被合并覆盖[包含的屏幕截图]
- python - QueueManager.close() 使用 pymqi
- flutter - SelectableText 小部件未在 Web 上显示工具栏
- vb.net - 防止鼠标点击关闭菜单
- .htaccess - 将 apache .htaccess 重写 [B] 标志规则转换为 nginx 时遇到问题