- PR -

日付検索

投稿者投稿内容
未記入
会議室デビュー日: 2008/11/28
投稿数: 3
投稿日時: 2008-11-28 14:17
申し訳ございませんが、教えて下さい。
日付を条件にselectしたいのですが、どうしても出来ません。
(形式例:2008-10-28 00:00:00.0)
テーブル:値引処理票
条件  :申請日が2009年のデータ

以上、ご回答宜しくお願い致します。
IMPREZA
ベテラン
会議室デビュー日: 2005/07/06
投稿数: 58
投稿日時: 2008-11-28 14:23
select * from 値引処理票 where 申請日カラム名 >= 2009-01-01 00:00:00.0 and 申請日カラム名 =< 2009-12-31 23:59:59.9

で出来るんじゃないですか?
未記入
会議室デビュー日: 2008/11/28
投稿数: 3
投稿日時: 2008-11-28 14:30
ありがとうございます。
select * from 値引処理票 where 申請日>='2009-01-01 00:00:00.0' and 申請日<='2009-12-31 23:59:59.9' で検索出来ました。
重ねて申し訳ございませんが、like で検索は不可能でしょうか?
(例:申請日 like '2009%' ←検索出来ません)

以上、宜しくお願い致します。
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2008-11-28 15:14
DBMSは何を使っていますか?
申請日のデータ型は何ですか?

カラムをYYYYMMDDHHMMSSのような感じの形式の文字列に関数で変換して
それとLikeで比較すればいけると思いますが、
どのように実現するかはDBMSによると思います。

[ メッセージ編集済み 編集者: よねKEN 編集日時 2008-11-28 15:14 ]
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-11-28 15:24
引用:

IMPREZAさんの書き込み (2008-11-28 14:23) より:
select * from 値引処理票 where 申請日カラム名 >= 2009-01-01 00:00:00.0 and 申請日カラム名 =< 2009-12-31 23:59:59.9

で出来るんじゃないですか?


回答というよりは上との比較ですが、私だったらこうするでしょうか。

select * from 値引処理票 where 申請日カラム名 >= 2009-01-01 00:00:00.0 and 申請日カラム名 < 2010-01-01 00:00:00.0
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-11-28 17:22
rainさんに一票かな・・・。
申請日カラム名 =< 2009-12-31 23:59:59.9だと、
極端な話2009-12-31 23:59:59.99とかは対象外ですよね。

文字型ならLIKEもありですが、日付型なら素直に書いた方がよいです。
LIKEではなく、SUBSTRで先頭4文字が2009という比較も可能といえば可能です。
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2008-11-28 17:43
コード:
【SQL Server】
SELECT
    *
FROM
    値引処理票
WHERE
    YEAR(CONVERT(DATETIME, 申請日, 120)) = 2009

【Oracle】
SELECT
    *
FROM
    値引処理票
WHERE
    TO_CHAR(TO_TIMESTAMP(申請日, 'YYYY-MM-DD HH24:MI:SS.FF1'), 'YYYY') = '2009'

King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2008-11-28 17:55
すみません。
上の書き込みで

'YYYY-MM-DD HH24:MI:SS.FF1'

'YYYY-MM-DD HH24:MI:SS.FF'

でした。

[ メッセージ編集済み 編集者: King 編集日時 2008-11-28 18:07 ]

スキルアップ/キャリアアップ(JOB@IT)