2017-07-09 3 views
-4

Wie bekomme ich das Jahr und den Monat eines Datums in der Where-Klausel mit Oracle.Wie bekomme ich Jahr und Monat eines Datums mit Oracle

Ich arbeitete mit SQL Server und es war so einfach wie YEAR (FIELDNAME) und MONAT (FIELDNAME).

Ich habe folgendes versucht:

SELECT * 
FROM myschema.mytablename 
WHERE EXTRACT(YEAR FROM myDATE) = 2017 

aber es gibt ORA-30076 Fehler

+0

Sein zu Oracle 11g verbunden – user2597012

+1

Was der Datentyp 'myDATE' ist? –

Antwort

0

Sie EXTRACT (versucht haben)?

SELECT EXTRACT(YEAR FROM DATE '2017-12-01') FROM DUAL; 
2017 

SELECT EXTRACT(MONTH FROM DATE '2017-12-01') FROM DUAL; 
12 

Ich versuchte dies in SQL Geige mit 11g und es funktioniert auch in WHERE-Klausel.

http://sqlfiddle.com/#!4/fb2b09/2

enter image description here

+0

Ich brauche das in meiner Where-Klausel zu sein. Ist es möglich? – user2597012

+0

können Sie versuchen, SELECT * FROM Tabellenname WHERE Some_field_name = EXTRACT (Jahr von Datum date_field_name); Im Wesentlichen extrahieren Funktion extrahiert das angeforderte Datum Attribut von bestimmten Feldnamen. – JRG

+0

Ich habe es versucht und es gibt ORA-30076 Fehler. – user2597012

0

Ihre Abfrage sollte funktionieren, aber eine bessere Alternative

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 

Viel Glück wäre.

0
SELECT * 
FROM myschema.mytablename 
WHERE TO_CHAR(myDATE, 'YYYY') = '2017'; 

Jahrteil von DATE explizit in CHAR umwandeln und mit Literal vergleichen. Für das Jahr und Monat Vergleich:

SELECT * 
    FROM myschema.mytablename 
    WHERE TO_CHAR(myDATE, 'YYYY') = '2017' AND TO_CHAR(myDate, 'MM') = '07'; 
Verwandte Themen