如何使用Oracle在where子句中获取日期的年和月。
我曾经使用过SQL Server,它就像YEAR(FIELDNAME)和MONTH(FIELDNAME)一样简单。
我尝试了以下方法:
SELECT *
FROM myschema.mytablename
WHERE EXTRACT(YEAR FROM myDATE) = 2017
Run Code Online (Sandbox Code Playgroud)
但是它给出了ORA-30076错误
SELECT *
FROM myschema.mytablename
WHERE TO_CHAR(myDATE, 'YYYY') = '2017';
Run Code Online (Sandbox Code Playgroud)
将 DATE 的年份部分显式转换为 CHAR 并将其与文字进行比较。对于年份和月份比较:
SELECT *
FROM myschema.mytablename
WHERE TO_CHAR(myDATE, 'YYYY') = '2017' AND TO_CHAR(myDate, 'MM') = '07';
Run Code Online (Sandbox Code Playgroud)
您是否尝试过EXTRACT()?
SELECT EXTRACT(YEAR FROM DATE '2017-12-01') FROM DUAL;
2017
SELECT EXTRACT(MONTH FROM DATE '2017-12-01') FROM DUAL;
12
Run Code Online (Sandbox Code Playgroud)
我在11g的sql小提琴中尝试过此方法,它也可以在WHERE子句中使用。
http://sqlfiddle.com/#!4/fb2b09/2
| 归档时间: |
|
| 查看次数: |
23878 次 |
| 最近记录: |