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

SQLServerで「nvarchar」を「datetime」に変換する際の変換エラー

    SQLServerでサポートされている形式は多数あります。 MSDNBooksOnlineを参照してください。>キャスト およびCONVERT 。これらの形式のほとんどは依存です どの設定を使用しているか(したがって、これらの設定が機能する場合と機能しない場合があります)。

    これを解決する方法は、(少し適合した)ISO-8601日付形式を使用することです。 これはSQLServerでサポートされています-この形式は常に機能します -SQLServerの言語と日付形式の設定に関係なく。

    ISO-8601形式 SQLServerでサポートされているのは2つの種類があります。

    • YYYYMMDD 日付のみ(時間部分なし)。ここに注意してください:ダッシュはありません! 、それは非常に重要です! YYYY-MM-DD ない SQL Serverの日付形式の設定とは無関係であり、しない あらゆる状況で機能します!

    または:

    • YYYY-MM-DDTHH:MM:SS 日付と時刻について-ここに注意してください:この形式はあります ダッシュ(ただし、できます 省略)、および固定の T DATETIMEの日付と時刻の部分の間の区切り文字として 。

    これはSQLServer2000以降で有効です。

    SQLServer2008以降とDATEを使用している場合 データ型( DATEのみ -ない DATETIME !)、実際に YYYY-MM-DDを使用することもできます 形式であり、SQLServerのどの設定でも機能します。

    このトピック全体が非常にトリッキーでやや混乱している理由を私に聞かないでください-それはまさにその通りです。しかし、 YYYYMMDD 形式であれば、SQL Serverのすべてのバージョン、およびSQLServerの言語と日付形式の設定に問題はありません。

    SQL Server 2008以降の推奨事項は、 DATEを使用することです。 日付部分のみが必要な場合、および DATETIME2(n) 日付と時刻の両方が必要な場合。 DATETIMEの段階的廃止を開始する必要があります 可能であればデータ型



    1. 特定の緯度/経度に近い順にテーブルを並べ替える(MySQL + PHPを使用)

    2. MySQLで文字列の左または右の部分を返す方法

    3. コンカレントマネージャで設定されたリクエスト

    4. SQLServerの論理演算子とは-SQLServer/TSQLチュートリアルパート124