Last-modified: 2011-12-26 (月) 01:24:45
SQL/条件に日付を指定したい

概要

条件に日付を指定してみます。MySQLでのみ検証しています。
今回はこのrsyslogテーブルを使います。

フィールド種別
DeviceReportedTimedatetime
Prioritysmallint(6)
FromHostvarchar(60)
SysLogTagvarchar(60)
Messagetext

方法

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
-
!
 
 
 
-
!
 
 
 
-
!
 
 
 
-
!
 
 
 
-
!
 
 
-- 今日
SELECT * FROM rsyslog
WHERE DeviceReportedTime >= CURRENT_DATE
ORDER BY DeviceReportedTime;
 
-- 年指定(2010/01/01 00:00:00~)
SELECT * FROM rsyslog
WHERE DeviceReportedTime >= "2010"
ORDER BY DeviceReportedTime;
 
-- 年月指定(2010/10/01 00:00:00~)
SELECT * FROM rsyslog
WHERE DeviceReportedTime >= "2010-10"
ORDER BY DeviceReportedTime;
 
-- 年月日指定(2010/10/20 00:00:00~)
SELECT * FROM rsyslog
WHERE DeviceReportedTime >= "2010-10-20"
ORDER BY DeviceReportedTime;
 
-- 範囲指定(2010/12/01 00:00:00~15日前まで)
SELECT * FROM rsyslog
WHERE "2010-12" <= DeviceReportedTime AND DeviceReportedTime <= CURRENT_DATE- 15
ORDER BY DeviceReportedTime;

検証時の環境