2016-08-22 7 views
1

です.SQLデータベースでクエリーを実行する日報(1つのbatファイルを使用)を自動化するために取り組んでいます。クエリーには、以前day.Belowのためのデータを抽出するサンプル8月22日のデータに対して1つの日時のあるSQLクエリーをフォーマットします。条件は

select column 1, column2 from ABC where time like '20160822%' 

あるクエリが1日少ないときbatファイルのデータを引っ張ってくるように私は、クエリのフォーマットでの支援が必要以下のクエリを使用してスケジュールベースで実行されます。

SELECT CONVERT(char(10), GetDate()-1,126) 
+6

日付の処理は、リレーショナルデータベースサーバーの製造元とモデルに固有です。あなたの質問を編集して、MySQL、sql-server、Oracle、postgreSQL、またはあなたが使用しているサーバのいずれかのタグを追加してください。 –

+0

これは私にとってSQL Serverのようです。 –

+0

質問にテーブルデータを添付してください。 – dhS

答えて

1

決してあなたがやっているように見えるテキスト列、中店舗日付情報。つまり、SUBSTRINGCONVERTの組み合わせを使用して、time列と昨日の日付を比較することができます。

SELECT col1, col2 
FROM ABC 
WHERE SUBSTRING(time, 1, 4) = CONVERT(char(4), GETDATE()-1, 126) AND 
     SUBSTRING(time, 5, 2) = SUBSTRING(CONVERT(CHAR(8), GETDATE()-1, 126), 6, 2) AND 
     SUBSTRING(time, 7, 2) = SUBSTRING(CONVERT(CHAR(8), GETDATE()-1, 126), 9, 2) 
+0

クエリは結果を返しません。時間フィールドは14文字です。 – Subash

+0

プロンプトレスポンスのTimに感謝します。上記のクエリを試しましたが、前の日付の結果をフェッチしませんでした。時間フィールドは14文字です。サンプル1つは:20160824000316です。それで、値をトリムして比較することが可能です。 – Subash

+0

一致するデータはありますか? 'time'フィールドはvarcharですか? –

関連する問題