形式で保存された日付があり"mm/yyyy"
、そのデータ型は varchar です。
"mm/dd/yyyy"
日付をフォーマットで取得したい
例:4/2013
データベースに保存
私が欲しい
30/4/2013
形式で保存された日付があり"mm/yyyy"
、そのデータ型は varchar です。
"mm/dd/yyyy"
日付をフォーマットで取得したい
例:4/2013
データベースに保存
私が欲しい
30/4/2013
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);
それは迷惑ですか?良い!そもそも日付を正しい方法で保存します。また、データベースを特定の形式で日付を保存/提示する場所として考えるのはやめてください。必要に応じてクライアントで形式を設定してください。通常、対象者が非常に限られている場合を除き、地域形式はとにかく悪い考えです。