タイムスタンプを日付に変換するにはどうすればよいですか?
テーブルには、timestamp
形式のstart_ts
フィールドがあります。
'05/13/2016 4:58:11.123456 PM'
テーブルを照会して、テーブル内の最大値と最小値timestamp
を見つける必要がありますが、できません。
Select max(start_ts)
from db
where cast(start_ts as date) = '13-may-2016'
ただし、クエリは値を返しません。
日付の最大タイムスタンプを見つけるのを手伝ってください。
CAST(timestamp_expression AS DATE)
たとえば、クエリは次のとおりです。SELECT CAST(SYSTIMESTAMP AS DATE) FROM dual;
代わりにTRUNC
とTO_DATE
を使用してみてください
WHERE
TRUNC(start_ts) = TO_DATE('2016-05-13', 'YYYY-MM-DD')
または、代わりに>=
および<
を使用して、start_ts
列で関数を使用しないようにすることができます。
WHERE
start_ts >= TO_DATE('2016-05-13', 'YYYY-MM-DD')
AND start_ts < TO_DATE('2016-05-14', 'YYYY-MM-DD')
選択中にこのフォーマットを使用します
to_char(systimestamp,'DD-MON-YYYY')
例えば:
デュアルからto_char(systimestamp、 'DD-MON-YYYY')を選択します。
データ型がタイムスタンプの場合、表示形式は無関係です。
データを日付に変換したり、to_charを使用したりしないでください。代わりに、TO_TIMESTAMP()を使用してタイムスタンプデータをタイムスタンプ値と比較します
WHERE start_ts >= TO_TIMESTAMP('2016-05-13', 'YYYY-MM-DD')
AND start_ts < TO_TIMESTAMP('2016-05-14', 'YYYY-MM-DD')
次を使用できます:テーブルからselect to_date(to_char(date_field、 'dd/mm/yyyy')).