10

datatimestamp2 年間のデータを持つ SQL Server Management Studio Microsoft SQL Server 2005 - 9.00.4060.00 (X64) DB テーブルで、毎日午後 4 時を超えるデータを含むデータを選択する必要があります。これを行う最善の方法は何ですか?私のタイムスタンプは次の形式です: DATETIME, '2005-10-13 16:00:00', 102. 毎日午後にランダムな時間にデータがあります。毎日午後 4 時以降にデータを取得する必要があります。一日だけではありません。

たとえば、次のように1日試しました:

SELECT     Yield, Date, ProductType, Direct
FROM         MIAC_CCYX
WHERE     (Date < CONVERT(DATETIME, '2005-10-13 16:00:00', 102))  Thanks for help
4

2 に答える 2

24

質問を読むのは難しいですが、実際にdatetimeデータ型を使用していると仮定するdatepartと、午後 4 時を超える日付を見つけるために使用できます。

WHERE datepart(hh, YourDate) > 16

分も必要になったので、午後 4 時 45 分以降のレコードが必要な場合は、次のように日付を時間にキャストできます。

SQL Server 2000/2005

SELECT Yield, [Date], ProductType, Direct 
FROM MIAC_CCYX 
WHERE cast(convert(char(8), [Date], 108) as datetime) > cast('16:45' as datetime)

基本的に、convertの Date および Time スタイルを使用して日付をキャストし、日付を時間文字列に変換してから、datetime目的の時間と比較するために に戻します。

SQL Server 2008+

SELECT Yield, [Date], ProductType, Direct 
FROM MIAC_CCYX 
WHERE CAST([Date] as time) > CAST('16:45' as time)
于 2012-11-26T20:24:53.330 に答える
1

これは、日付が何であれ機能します。これは日付を比較しません。むしろ、Datepart() は datetime から時間要素を抽出し、指定された時間 (たとえば、あなたの場合は午後 4 時) と比較します。

SELECT * from <table> where DATEPART(hh, ModifiedDate) >= 16

ModifiedDate を列名として想定しています。これは、午後 4 時から午後 11 時 59 分 59 秒までのデータを返します。

于 2012-11-26T20:40:15.853 に答える