Netezzaの日付をタイムスタンプ形式からyyyymmddに変換する方法
以下のクエリを使用して、日付形式に変換します。
select TO_CHAR( DATE '2009-12-23 23:45:58','YYYY-MM-DD')
または
select TO_CHAR(TO_DATE( '2009-12-23 23:45:58','YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD')
または
select TO_CHAR(current_timestamp,'YYYY-MM-DD')
Netezzaには、次のものを使用するだけでこの機能が組み込まれています。
SELECT DATE(STATUS_DATE) AS DATE,
COUNT(*) AS NUMBER_OF_
FROM X
GROUP BY DATE(STATUS_DATE)
ORDER BY DATE(STATUS_DATE) ASC
これはタイムスタンプの日付部分のみを返し、「TO_CHAR()」を使用して文字列にキャストするよりもはるかに便利です。これは、GROUP BY、HAVING、および他のnetezza日付関数で機能するためです。 (TO_CHARメソッドはそうしません)
また、DATE_TRUNC()関数は、タイムスタンプから特定の値(「日」、「月」、「年」など)をプルしますが、複数の関数を使用せずにこれらの値を1つだけプルして連結します。
DATE()はこれに対する完璧で単純な答えであり、この質問に対する多くの誤解を招く答えがStackにあることに驚いています。 TO_DATEがよく見られます。これはOracleの機能ですが、Netezzaでは機能しません。