web-dev-qa-db-ja.com

Oracle SQL「DATETIMEフィールドから日付を選択」

REPORTDATE(DATETIME)フィールドがあります。 SQL Developerでは、この形式で値を確認できます

29.10.2013 17:08:08

ちょうど日付の選択を行うには、これを実行する必要があることがわかりました:

SELECT TO_DATE (REPORTDATE, 'DD.MON.YYYY') AS my_date
FROM TABLE1

ただし、0RA-01843: not a valid monthを返します

結果が29.10.2013のみを返すようにする

6
Dejan

TO_DATE(REPORTDATE、 'DD.MON.YYYY')

これは意味がありません。日付を再び日付に変換しています。 TO_DATEを使用して、文字列リテラルを[〜#〜] date [〜#〜]に変換します。

結果が29.10.2013のみを返すようにする

[〜#〜] trunc [〜#〜]を使用して、時間要素を切り捨てることができます。この値をDATE計算に使用する場合は、直接使用できます。

例えば、

SQL> select TRUNC(SYSDATE) dt FROM DUAL;

DT
---------
12-MAR-15

特定の形式で表示するには、TO_CHARおよび適切なFORMAT MASKを使用できます。

SQL> SELECT to_char(SYSDATE, 'DD.MM.YYYY') dt from dual;

DT
----------
12.03.2015

SQL>
20
Lalit Kumar B

これを使って:

SELECT trunc(REPORTDATE, 'DD') AS my_date
FROM TABLE1

これにより、返されるオブジェクトのタイプは変更されず、「日」レベル以下のすべてが切り捨てられます。

文字列を返すことに問題がなければ、次のようにできます。

SELECT TO_CHAR(REPORTDATE, 'DD.MM.YYYY') AS my_date
FROM TABLE1
1
Gergely Bacso

このコードスニペットを試してください:

 cast(datetimevariable as date)
0
Majorkumar