1

SQL Server 2008 データベースに、データ型が datetime2 の列があります。これは、日付が YYYY-MM-DDThh:mm:ss の形式で表示されることを意味します。ただし、日付をデフォルトで dd/mm/YYYY の形式にする必要があり、列のデータ型を変更できません。また、datetime2 形式は、SET LANGUAGE および SET DATEFORMAT セッション ロケール設定の影響を受けません。最後に、convert() 機能を使用したくありません。そうしないと、すべてのクエリを書き直す必要があります。

どうすればこれを達成できますか?

どうもありがとう!

4

2 に答える 2

3

「表示」と言うと、どこに表示されますか?SSMSで?次に、クエリを変更する必要があります。アプリ/レポートで? 次に、アプリのコード/レポートを変更して、日付を適切にフォーマットします。

日付は SQL の日付です。「形式」は、日付を視覚化する場合にのみ考慮する必要があります。( を使用して) 形式を指定しない場合CONVERT、 の「既定の」形式datetime2が使用されます。datetime2私が認識しているデフォルトをオーバーライドするシステム全体の設定はありません。

于 2014-01-08T14:22:42.150 に答える
2

日付の保存方法について考えるのはやめましょう。日付を として表示したい場合はdd/mm/yyyy、可能な最後のステップでそのフォーマットを適用します (たとえば、C# で Format() または ToString() を使用します)。または、クエリ レベルでこれが必要な場合は、クエリを適切に記述しますCONVERT()。たとえば、戻って追加する必要があります。

DECLARE @d DATETIME2 = CURRENT_TIMESTAMP;
SELECT CONVERT(CHAR(10), @d, 103);

データベースレベルで好みのフォーマットを適用できるようにするために、データ型を変更してこのデータを間違ったデータ型に何らかの方法で変更することは完全に間違っています。

于 2014-01-08T14:28:32.613 に答える