6

DD-MMM-YYYY 形式の日付のセットがあります。年は重要ではないため、日付の DD-MMM 部分のみを使用して日付を比較できるようにする必要があります。

どうすればこれを達成できますか?

私はDATEPART関数を読んでみました(編集:明らかにうまくいかないでしょう)が、理論的にはDDまたはMMM部分のいずれかを返すことしかできず、両方を一度に返すことはできません。

編集: oracle タグを追加しました。ごめん。

日付フィールドの例: 01-MAR-1994

4

8 に答える 8

8

列がタイプの場合DATE、フォーマットはありません。

私があなたを正しく理解していれば、あなたはその部分だけを表示したいので、関数でmon-dd変換する必要があります 。TO_CHAR

select to_char(your_date_column, 'mon-dd') from your_table
于 2013-09-17T14:08:17.683 に答える
5

DATEPART を使用しようとしたため、SQL Server または Oracle を使用していると仮定すると、 関数DAY()MONTH()関数を使用して日と月を取得できます。繰り返しますが、比較している日付が 2 つの異なるテーブルにあると仮定すると、次のようになります。

SELECT MONTH(t1.date), DAY(t2.date)
FROM table AS t1
INNER JOIN table2 AS t2
ON t1.key = t2.key
WHERE MONTH(t1.date) = MONTH(t2.date)
AND DAY(t1.date) = DAY(t2.date)

編集:同じテーブル内の行を比較するだけの場合は、非常に単純なクエリのみが必要です。

SQLフィドル

select id, TO_CHAR(most_recent, 'mon-dd')
from (
    select id, MAX(date1) AS most_recent
    from table1
    group by id
  )
于 2013-09-17T13:55:52.333 に答える
1

月と日を 1 つの整数に結合することもできます。

EXTRACT(MONTH FROM datecol) * 100 + EXTRACT(DAY FROM datecol) AS MonthDay

そうすれば、並べ替えと比較が簡単になります。

于 2013-09-17T13:59:31.847 に答える
0

select FORMAT(yourcoulmn_name, 'dd/MM') from table

于 2018-10-25T09:59:04.343 に答える