sql >> データベース >  >> RDS >> Sqlserver

SQL Server の日付形式はユーザーに依存しますか?

    文字列を使用して日時を指定する必要がある場合は、セーフ を使用する必要があります 、言語に依存しない形式。

    SQL Server では、これは ISO-8601 形式 (若干変更されています) であり、DATETIME に対して基本的に 2 つの安全な形式をサポートしています。 言語、地域、日付形式の設定に関係なく、常に機能します:

    YYYYMMDD (例:2012 年 12 月 31 日の場合は 20121231) 日付のみが必要な場合は YYYY-MM-DDTHH:mm:ss (例:2012 年 12 月 31 日午後 9:05 の場合は 2012-12-31T21:05:00)   

    注:

      <リ>

      最初の日付のみの形式にはダッシュがありません または区切り記号!

      <リ>

      2 番目の形式には日付のダッシュがあり (省略可能)、固定の T があります。 文字列の日付部分と時刻部分の間の区切り文字として

    更新: 最後のコメント (2 人のユーザーの異なるデフォルト言語について) に従って - これを試してください:

    -- これは、`SA` が文字列を日時として解釈する方法です....SET LANGUAGE englishSELECT CAST('2012-11-30 23:59' AS DATETIME)   

    正常に動作します...

    -- これは英国のユーザーが文字列を datetimeSET LANGUAGE britishSELECT CAST('2012-11-30 23:59' AS DATETIME) として解釈する方法です  

    これは、文字列を 2012 年の 30 月 11 日 として解釈しようとします。 そして明らかに、それは失敗します....



    1. Herokuエラー:ActionView ::Template ::Error(#<Message:0x007fc9df016930>の未定義のメソッド `captcha')

    2. 左結合単一ランダムレコードMySQL

    3. シングルトンPDOモデル-階層

    4. ハッシュマップをstringarrayに変換する