2012-03-26 18 views
5

テーブルに日付を挿入しようとしましたが、挿入された日付と日付のフォーマットが乱れています。テーブルのデータ型はDateです。私の挿入スクリプトは以下の通りです。SQL Server 2008 - 挿入時に日付形式の問題が発生する

insert into Trans(ID, TDate, Description) 
values(1, CONVERT(datetime, 25-02-2012, 101), 'Opening') 

私はdd/MM/yyyy形式で挿入しようとしていると私は私のテーブル内の同じ形式でそれをしたいです。しかし、私のテーブルでは、日付は1894-07-22です!

日付を希望の形式に正確に挿入したい場合は、挿入した日付を表の25-02-2012としたいとします。

ここで何が間違っていますか?誰かが助けることができますか?

+5

あなたはISO形式を使用する必要があります( 'YYYYMMDD:

は、日時の変換のための基準として使用するには、いくつかの便利なリンクがあります' - ** no **ダッシュか何か!)言語と日付の設定は独立ですSQL Serverのすべてのインスタンスで動作します。また、SQL Server **は日付を特定の文字列ベースの形式で保存しません。これは8バイトのバイナリデータとして保存されます。表示されているのは、** DATE'の**文字列表現です** **特定の形式では**保存できません - 'DATE'は' DATE'で 'DATE'です。 –

答えて

0

日付の前後に一重引用符を使用する必要があります。あなたがdd/mm/yyyy形式の日付フォーマットをしたいなら、あなたはあなたがconvert(varchar, getdate(), 101)を使用する場合、日付の形式はmm/dd/yyyyになります変換(日時、'25 -02-2012' 、103)

insert into Trans(ID,TDate,Description) 
values(1,CONVERT(datetime,'25-02-2012',103),'Opening') 

を使用したいと思うでしょう。

+0

ありがとうbluefeet。それを試してみます.. – Codebug

+0

convert(char(10))、 '25-02-2012'、103)私のテーブルのフィールド型がdatetimeであるため、エラーが発生します。 – Codebug

+0

が(datetime ...)に変換されました – Taryn

-1
insert into emp 
(EMPNO,ENAME,DEPTNO,JOB,SAL,COMM,MGR,HIREDATE)values 
(7839,'KING',10,'PRESIDENT',5000,NULL,NULL,'17-11-81') 
+0

この回答は質問とは何が関係していますか? –

関連する問題