3

これはおそらく非常に単純な質問です。

Sql Server 2008 R2 のデータベースからいくつかの値を取得する非常に基本的なクエリが Excel にあります。

このデータベースの日付フィールドは日時として保存されます。このクエリでは、時間の部分には関心がないので、日付のみを選択したいと考えています。Cast または Convert を使用してみましたが、どちらも SQL の日付 (yyyy-mm-dd) を Excel に返します。Excel はこれを日付ではなくテキストとして認識するため、データが Excel にあるとテーブルで日付フィルターを実行できません。

Excelでdatepart()を実行すると、日付として表示され、期待どおりにフィルタリングできますが、クエリから直接取得したデータをExcelがフィルタリングできる日付値として返す必要があります。

以下は私のサンプルクエリです:

SELECT order_header.oh_id, 
order_header.oh_order_number, 
order_header.oh_datetime, 
convert(date, order_header.oh_datetime, 103) as 'ConvertOrderDate',
cast(order_header.oh_datetime as date) as 'CastOrderDate'
FROM order_header
WHERE order_header.oh_datetime >= '2013-09-01'

これを Excel に返すと、次のように返されます。

出力画像 http://img834.imageshack.us/img834/4417/7gbg.png

4

1 に答える 1

1

私は実際に何も奇妙なことをせずに答えを見つけました:)

SELECT order_header.oh_id, 
order_header.oh_order_number, 
order_header.oh_datetime, 
DATEADD(dd, DATEDIFF(dd, 0, order_header.oh_datetime), 0) as 'OrderDate'
FROM order_header
WHERE order_header.oh_datetime >= '2011-09-01'

これは日時として返されますが、時間は 00:00 であるため、Excel で簡単に書式設定できます。

于 2013-09-23T15:01:23.393 に答える