sto*_*990 0 sql t-sql sql-server
我正在尝试访问日期时间列以查明日期是否在今天之后的一周内,或过期.然后写一个新列的值来说Incoming,Overdue或Fine.
SELECT
CASE next_action_date
WHEN (BETWEEN GETDATE()+7 AND GETDATE()) THEN 'Incoming'
WHEN (< GETDATE()) THEN 'Overdue'
ELSE 'Fine'
END AS condition
FROM
tableName
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所得到的,但正如你可以通过观察看到的那样,它根本不起作用:
Msg 156,Level 15,State 1,Line 3
关键字'BETWEEN'附近的语法不正确.
有两种语法的的CASE表达-即所谓的简单一个,对其它的值的列表进行比较的单个值,并且搜索一个与通用布尔条件.您选择了简单的案例,但它没有足够的灵活性来满足您的需求; 你应该切换到搜索的语法,如下所示:
SELECT
CASE
WHEN next_action_date BETWEEN GETDATE() AND GETDATE()+7 THEN 'Incoming'
WHEN next_action_date < GETDATE() THEN 'Overdue'
ELSE 'Fine'
END AS condition
FROM
tableName
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
176 次 |
| 最近记录: |