case when then else end NOW()
时间: 2023-11-15 13:00:15 浏览: 71
CASE WHEN THEN ELSE END是SQL语言中的一种条件表达式,用于根据条件返回不同的结果。其中,WHEN后面跟随条件,THEN后面跟随条件成立时的返回值,ELSE后面跟随条件不成立时的返回值,END表示条件表达式结束。而NOW()是MySQL中的一个函数,用于返回当前系统时间。因此,如果在MySQL中使用CASE WHEN THEN ELSE END NOW(),则会根据条件返回不同的结果,并将当前系统时间作为最终结果返回。
相关问题
oraclel case when
在Oracle中,CASE WHEN语句用于在查询中根据条件返回不同的值。可以使用CASE WHEN语句来对数据进行条件判断和转换。下面是一个示例:
SELECT CASE
WHEN CreateTime > '2019-02-14 16:24:42' THEN '之后'
WHEN CreateTime < '2019-02-14 16:24:42' THEN '之前'
ELSE 'now'
END stage
FROM table_login
ORDER BY CreateTime DESC;
这个语句将根据CreateTime的值返回不同的阶段信息,如果CreateTime大于'2019-02-14 16:24:42',则返回'之后',如果CreateTime小于'2019-02-14 16:24:42',则返回'之前',否则返回'now'。其中table_login为查询的表名,CreateTime为表中的列名。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Oracle / Mysql 的 case when then else end 用法](https://blog.csdn.net/beguile/article/details/102557454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *3* [给力 MySQL 和oracle中 case when用法](https://blog.csdn.net/zhou123905524/article/details/100008638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
case when DATE_FORMAT(now(),'%d') BETWEEN 1 and 13 then mb.actmonth not regexp DATE_FORMAT(now(),'%Y-%m') else 1 = 1 end
CASE语句在这里用于根据当前日期(now())判断月份是否在1到13之间,如果不是,则返回MB.ACTMONTH字段不匹配当前年月(DATE_FORMAT(now(),'%Y-%m'))的结果,如果满足条件则返回TRUE。这里是SQL查询的一个实例[^1]:
```sql
CASE
WHEN DATE_FORMAT(NOW(), '%d') BETWEEN 1 AND 13 THEN MB.ACTMONTH NOT REGEXP DATE_FORMAT(NOW(), '%Y-%m')
ELSE 1 = 1
END
```
这个表达式的工作原理是:
1. `DATE_FORMAT(NOW(), '%d')` 获取当前日期的日部分,格式化为数字。
2. 检查日 (`BETWEEN 1 AND 13`) 是否在1到13范围内。
3. 如果不在范围,那么执行 `MB.ACTMONTH NOT REGEXP DATE_FORMAT(NOW(), '%Y-%m')`,这意味着如果MB.ACTMONTH不匹配当前的年月格式,`NOT REGEXP`会返回TRUE。
4. 如果日不在1到13内,或者MB.ACTMONTH匹配当前年月,那么`ELSE 1 = 1` 会返回TRUE,因为任何非零值等于1都是TRUE。
阅读全文