1

DateTime 形式の日付の行を含む Access データベース テーブルがあります。私がする必要があるのは、利用可能な日付のすべての異なる月名を asp.net ページに取得することです。たとえば、次の日付がある場合:

03-JAN-13 
04-JAN-13
09-FEB-13

SQL クエリは、次の月の名前を与えます: JAN と FEB。Web を検索した後、次の SQL クエリが必要なものを提供するはずであることがわかりました。

OleDbCommand cmd5 = new OleDbCommand("SELECT distinct DATENAME( 'mm', date_time) as MonthName from temperature ", cn);

しかし、asp.net Web サイトを実行すると、次の例外が発生します。

Exception Details: System.Data.OleDb.OleDbException: Undefined function 'DATENAME' in expression.

PS:その後、これらの文字列値をドロップダウンリストに入れます(そのステップで問題ありません)。それで、誰かがそれを行う方法を教えてもらえますか?

ありがとう!

4

2 に答える 2

3

Accessの場合、構文は次のようになります。

SELECT DISTINCT MonthName(Month ( date_column )) as MonthName from temperature

MonthName関数は整数を期待し、関数Monthは月の整数値を返すためです。

詳細については、ここここを参照してください

于 2013-01-09T20:48:35.063 に答える
2

この関数を使用してMonth()、特定の日付の月番号を取得し、それをMonthName()関数にフィードできます。

SELECT distinct MonthName(Month(date_time)) as [MonthName]
from temperature

エイリアスMonthNameは予約語なので、エイリアスを角かっこで囲みました。

必要なものを取得する別の方法は、Format()関数を使用することです。

SELECT distinct Format(date_time, 'mmmm') as [MonthName]
from temperature

どちらが速いかわかりません。両方を試すことができます。

于 2013-01-09T20:48:09.290 に答える