2017-07-17 16 views
-1

私は以下のクエリを使用して最大日付を検索し、出力は "30-12-2017"、出力は "15-12-2018"とします。サンプルデータが添付されています。データ型nvarchar型およびSQL Server 2008の最大日付を検索する

select MAX(date1) from tblMonth 

enter image description here

+4

*データ型はnvarchar *です - WHY ??? –

+2

日付のように見える場合は、日付のような匂いがして、散歩や会話は日付のようになります。おそらく***は***です。データ型は 'DATE'または' DATETIME2(n) '型)。あなたが処理するのがより簡単であるため、すべてを文字列に絞ってはいけません。 **最も適切な**データ型を使用してください - ***常に!*** –

+0

実際には同じことがオラクルで働いていますが、SQLで動作させる必要もあります –

答えて

3

日付1のためのあなたのデータ型がnvarcharのようですです。 MAX()nvarcharは文字列です。文字列30-12-2017は、例では最大のASCIIコードを持つ30で始まります。 31-11-2017と入力すると、MAX(date1)という結果になります。

代わりに日付データ型(datetime2またはdate)を使用すると、期待どおりに動作します。

関連する問題