2016-09-08 18 views
-1

私はSQL Serverの新機能です。私の問題は、datetimeの列を一定の日付と時刻で比較するSQLクエリを書くことですが、言語設定(日付と時刻の値に関する)とは独立しています。SQL Serverの日付と時刻の比較

+2

'WhereDateTimeField = '2016-09-08 13:57'' ...あなたの質問は何ですか...? – Siyual

+1

'DateTime'型は、言語やロケールに依存しません。 'DateTime'型で持続されるタイムゾーンやオフセットもありません。 – Igor

+0

2016年9月8日か08/09/2016か...あなたが書いた文法はわかっていましたが、SQL Serverが置かれているPCの言語設定に従って変更する必要があると思いました。 – Djole

答えて

2

SQL Serverは、任意の文字列形式でDateTimeを格納しません。これは8バイトの数値として格納されます。したがって、保存すると、言語に依存する形式などの問題はありません。

ただし、日付と時刻を表す文字列リテラルを使用すると、SQL Serverによって多くの形式がサポートされます。方法は、SQL Serverでサポートされている(わずかに適合した)ISO-8601の日付形式を使用することです - この形式は常に - SQL Serverの言語と日付形式の設定に関係なく動作します。 ISO-8601 format

は、日付と時刻のSQL Serverでサポートされていますが、次のようになります

  • YYYY-MM-DDTHH:MM:SS - ここで注意:このフォーマットは、ダッシュを持っている(しかし、彼らは省略することができる)、および固定T区切り文字としてDATETIMEの日付と時刻の間に

これはSQL Server 2000以降で有効です。

+0

私はDateTimeが文字列として格納されていないが、SQLクエリを書くときには文字列を書き込まなければならないということを認識しています。あなたの答えの残りの部分はわからなかったので、私はそれを私にとって役に立つとマークします。ありがとうございますmarc_s – Djole