1

日時レコードのあるテーブルがあります。日付または時刻を使用してレコードを選択する必要があります。

1/1/2001 13:33:00私がデータベースに このフォーマットを持っているとしましょう

私の質問は、日付、時刻、またはその両方を入力する場合、同じ日付または同じ時刻の行を取得する必要があるということです。どうすればこれを達成できますか?

時刻がデフォルトのようである場合、変換関数CONVERT(VARCHAR(10), Travel.Travel_DateTime, 110) は日付を返します00:00:00

4

2 に答える 2

5

(MySQLを想定していることに注意してください)

DATE関数とTIME関数を使用するだけです。

SELECT blah FROM tbl WHERE DATE(some_datetime_field) = '2012-04-02';

これにより、some_datetime_fieldの日付部分が2012年4月4日になるような行が選択されます。

同じ考え方がTIMEにも当てはまります。

SELECT blah FROM tbl WHERE TIME(some_datetime_field) = '14:30:00';

したがって、日付が2012年4月5日または時刻が午後2時30分であるすべての行を取得するには、次の2つを組み合わせるだけです。

    SELECT blah FROM tbl WHERE DATE(some_datetime_field) = '2012-04-02' OR TIME(some_datetime_field) = '14:30:00';

- -編集 - -

SQLサーバーの場合、次を使用できるはずです。

CONVERT(DATE, some_datetime_field) = '2012-04-02'

SQL Serverの日時データ型からのみ日付部分を返す方法から

于 2012-04-03T20:28:02.057 に答える
1

l_DATE日付と時刻をl_TIME変数に渡したとしましょう。

次に、次のクエリを使用できます。

select * from your_table 
where to_char(date_field,'DD/MM/YYYY') = l_DATE 
   or to_char(date_field ,'HH:MI:SS') = l_TIME

OracleデータベースをDBMSとして使用している場合は、上記のクエリを使用でき、希望する回答/結果が得られるはずです...

于 2012-04-03T20:33:17.810 に答える