SQLサーバーマシン上の1つのデータベースで、日付フォーマットをUS(mm/dd/YYYY)からUK(dd/mm/YYYY)に変更する必要があるのですが、どうしたらいいですか?
どうすればよいのでしょうか?
システム全体に対してこれを行うステートメントや、セッションに対してこれを行うステートメントを見たことがありますが、QAを再度通過しなければならないため、今コードを変更することはできません。
**更新情報
日付時刻は SQL Server がデータを保存する方法とは関係ありませんが、クエリを解析する方法とは大いに関係がありますね。
私はXMLファイルからデータベースに生データをチャッキングしています。XMLファイルの日付は、UKの日付形式です。
この例のように、 SET DATEFORMAT を使用できます。
declare @dates table (orig varchar(50) ,parsed datetime)
SET DATEFORMAT ydm;
insert into @dates
select '2008-09-01','2008-09-01'
SET DATEFORMAT ymd;
insert into @dates
select '2008-09-01','2008-09-01'
select * from @dates
XMLデータを解析するときは、コードでdateformatを指定する必要があります。
これらの非常に退屈な問題に対処することを避けるために。, YYYY-MM-DDである標準および一意のSQL / ISO日付形式で常にデータを解析することをお勧めします。その後、クエリは国際的に機能します。, メインサーバーまたはクエリクライアントの日付パラメーターに関係なく。 (ローカルの日付設定がメインサーバーの設定と異なる場合があります。)!
使用:
select * from mytest
EXEC sp_rename 'mytest.eid', 'id', 'COLUMN'
alter table mytest add id int not null identity(1,1)
update mytset set eid=id
ALTER TABLE mytest DROP COLUMN eid
ALTER TABLE [dbo].[yourtablename] ADD DEFAULT (getdate()) FOR [yourfieldname]
100%動作しています。
その形式は、SQL Serverが日時を保存する方法とは関係ないことを理解していますか?
セッションごとに set dateformat
を使用することができます。データベースのみの設定はありません。
データの挿入や更新、Whereフィルタリングにパラメータを使用する場合は、何の問題もありません'。