-1
SELECT Id,Date,Name 
FROM people 
WHERE DATEPART(hh,Date) >= 7 
AND DATEPART(hh,Date) <= 8 
Order by DATEPART(ww,Date);

私のデータベースはSQL Serverで、「日付」は文字列型として保存されています。そのクエリを実行すると、正しく注文されません。

私がやりたいことは、午前 7 時から午前 8 時までの毎日の値を取得することです。たとえば、午前 7 時から午前 8 時までの 6 月 14 日のレコード、6 月 15 日の同じものなどを取得したいと考えています。

4

1 に答える 1

2

まず、DB にどのように格納されているかを知っておく必要があります。「varchar 日付」を日時に解析するには。

mm/dd/yyyy のような Date varchar storaged があるとします。SELECT convert(datetime, THEDATECOLUMN, 101) -- mm/dd/yyyy

ここでvarcharからdatetimeへの変換のより多くのタイプを見ることができます

最初に varchar を日時に変換する必要があることを理解した上で、この例では を使用して、mm/dd/yyyyこのようにクエリを記述する必要があります。

SELECT Id,Date,Name 
FROM people 
WHERE DATEPART(hh,convert(datetime, DATE, 101) ) >= 7 
AND DATEPART(hh,convert(datetime, DATE, 101) )  <= 8 
Order by convert(datetime, DATE, 101);

保存方法に応じて、関連リンクに記載されている変換の種類を変更する必要があります

于 2012-06-14T22:20:09.300 に答える