0

形式で保存された日付があり"mm/yyyy"、そのデータ型は varchar です。

"mm/dd/yyyy"日付をフォーマットで取得したい

例:4/2013データベースに保存

私が欲しい

30/4/2013
4

1 に答える 1

2
DECLARE @d VARCHAR(32) = '4/2013';

-- as a datetime

SELECT DATEADD(DAY,-1,DATEADD(MONTH,1,
  CONVERT(DATETIME,'1/'+@d,103)));

-- as a date

SELECT CONVERT(DATE, DATEADD(DAY,-1,DATEADD(MONTH,1,
  CONVERT(DATETIME,'1/'+@d,103))));

-- as an ambiguously formatted regional string

SELECT CONVERT(CHAR(10), DATEADD(DAY,-1,DATEADD(MONTH,1,
  CONVERT(DATETIME,'1/'+@d,103))),103);

それは迷惑ですか?良い!そもそも日付を正しい方法で保存します。また、データベースを特定の形式で日付を保存/提示する場所として考えるのはやめてください。必要に応じてクライアントで形式を設定してください。通常、対象者が非常に限られている場合を除き、地域形式はとにかく悪い考えです。

于 2013-04-06T11:33:18.267 に答える