如何使用Oracle在where子句中獲取日期的年月。如何使用Oracle獲取DATE的年份和月份
我曾經使用過SQL服務器,它和YEAR(FIELDNAME)和MONTH(FIELDNAME)一樣簡單。
我曾嘗試以下:
SELECT *
FROM myschema.mytablename
WHERE EXTRACT(YEAR FROM myDATE) = 2017
但是它給了ORA-30076錯誤
如何使用Oracle在where子句中獲取日期的年月。如何使用Oracle獲取DATE的年份和月份
我曾經使用過SQL服務器,它和YEAR(FIELDNAME)和MONTH(FIELDNAME)一樣簡單。
我曾嘗試以下:
SELECT *
FROM myschema.mytablename
WHERE EXTRACT(YEAR FROM myDATE) = 2017
但是它給了ORA-30076錯誤
您是否嘗試過EXTRACT()?
SELECT EXTRACT(YEAR FROM DATE '2017-12-01') FROM DUAL;
2017
SELECT EXTRACT(MONTH FROM DATE '2017-12-01') FROM DUAL;
12
我在11g的sql小提琴中試過這個,它也在WHERE子句中工作。
我需要這個在我的where子句中。可能嗎? – user2597012
你可以嘗試SELECT * FROM table_name WHERE some_field_name = EXTRACT(YEAR FROM DATE date_field_name);基本上,提取函數將從給定的字段名稱中提取請求的日期屬性。 – JRG
我試過了,它給ORA-30076錯誤。 – user2597012
您的查詢應該工作,但更好的選擇將是
SELECT *
FROM YOUR_TABLE
WHERE MY_DATE BETWEEN TO_DATE('01-JAN-2017', 'DD-MON-YYYY')
AND TO_DATE('01-JAN-2018', 'DD-MON-YYYY') - INTERVAL '1' SECOND
好運。
SELECT *
FROM myschema.mytablename
WHERE TO_CHAR(myDATE, 'YYYY') = '2017';
顯式地轉換日期的年份部分爲CHAR,並與文字相比較。 對於年份和月份比較:
SELECT *
FROM myschema.mytablename
WHERE TO_CHAR(myDATE, 'YYYY') = '2017' AND TO_CHAR(myDate, 'MM') = '07';
它連接到Oracle 11g – user2597012
什麼'myDATE'的數據類型? –