web-dev-qa-db-ja.com

単純なDateTime SQLクエリ

特定の範囲内でDateTimeデータベースフィールドをクエリする方法

SQL Server 2005を使用しています

下記のエラーコード

SELECT * 
  FROM TABLENAME 
 WHERE DateTime >= 12/04/2011 12:00:00 AM 
   AND DateTime <= 25/05/2011 3:53:04 AM

特定の時間範囲内で行を取得する必要があることに注意してください。例、10分の時間範囲.

現在SQLは '12'付近の不正確な構文で戻ります。 "

76
ove

あなたは一重引用符を逃しました:

SELECT * 
FROM TABLENAME 
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'

また、ISO 8601形式のYYYY-MM-DDThh:mm:ss.nnn [Z]を使用することをお勧めします。これは、サーバーの地域の文化に依存しないためです。

SELECT *
FROM TABLENAME 
WHERE 
    DateTime >= '2011-04-12T00:00:00.000' AND 
    DateTime <= '2011-05-25T03:53:04.000'
104
Alex Aza

日付として渡す文字列を引用符で囲む必要があります。ここでBETWEENを使用することもできます。

 SELECT *
   FROM TABLENAME
  WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'

形式を指定しながら文字列を明示的に日付に変換する方法の例については、次の質問に対する回答を参照してください。

SQL Serverの文字列から日付への変換

8
Milimetric

これは、SQL Server 2005と2008の両方で私のために機能しました。

SELECT * from TABLE
WHERE FIELDNAME > {ts '2013-02-01 15:00:00.001'}
  AND FIELDNAME < {ts '2013-08-05 00:00:00.000'}
6
Jamaria

あなたは以下のコードを実行することができます

SELECT Time FROM [TableName] where DATEPART(YYYY,[Time])='2018' and DATEPART(MM,[Time])='06' and DATEPART(DD,[Time])='14
3
Abdul Rafey

SQLデータをエクスポートしようとしているアクセスファイルを開きます。そこにあるすべてのクエリを削除します。 SQL Serverインポートウィザードを実行するたびに、失敗した場合でも、SQLエクスポートWizardを再度実行する前に、削除する必要があるクエリがAccess DBに作成されます。

1
Dan
SELECT * 
  FROM TABLENAME 
 WHERE [DateTime] >= '2011-04-12 12:00:00 AM'
   AND [DateTime] <= '2011-05-25 3:35:04 AM'

これでうまくいかない場合は、あなたのテーブルを書き出してここに投稿してください。これは私達が私達があなたに正しい答えを早く得るのを助けるでしょう。

1
clyc
select getdate()

O/P
----
2011-05-25 17:29:44.763

select convert(varchar(30),getdate(),131) >= '12/04/2011 12:00:00 AM'

O/P
---
22/06/1432  5:29:44:763PM
1
jack.mike.info

SQL Serverの日付リテラルは一重引用符で囲む必要があると既に言っている人もいますが、月/日の混同の問題を2つの方法で解決できることを付け加えたいと思います。日) :

  1. 明示的なConvert(datetime, 'datevalue', style)を使用してください。ここで、styleは数値スタイルコードの1つです。 Cast and Convert を参照してください。 styleパラメータは、日付を文字列に変換するためだけでなく、文字列を日付に変換する方法を決定するためにも使用されます。

  2. 文字列として格納された日付には、地域に依存しない形式を使用します。私が使用しているものは 'yyyymmdd hh:mm:ss'、またはISOフォーマットのyyyy-mm-ddThh:mi:ss.mmmです。実験に基づいて、他の言語に依存しないフォーマット文字列はありません。 (私はあなたが最後にタイムゾーンを含めることができると思いますが、上記のリンクを参照してください)。

1
ErikE