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

日付の変換とカルチャ:DATEとDATETIMEの違い

    DATETIMEのISO-8601 (古いタイプ)はどういうわけか「壊れている」または「適応している」(バグと見なすか機能と見なすかによって異なります)-YYYYMMDDを使用する必要があります (なし 言語設定に関係なく機能するようにするためのダッシュ)。

    DATEの場合 またはDATETIME2(n) データ型、これは修正され、「適切な」ISO-8601形式YYYY-MM-DD 常に正しく解釈されます。

    -- OK because of "adapted" ISO-8601
    SET LANGUAGE GERMAN;
    DECLARE @dt DATETIME='20170113'; 
    
    SELECT @dt;
    
    SELECT CAST('20170113' AS DATETIME);
    SELECT CONVERT(DATETIME, '20170113'); 
    
    -- OK because of DATETIME2(n)
    SET LANGUAGE GERMAN;
    DECLARE @dt2 DATETIME2(0) = '2017-01-13'; 
    
    SELECT @dt2;
    
    SELECT CAST('2017-01-13' AS DATETIME2(0));
    SELECT CONVERT(DATETIME2(0), '2017-01-13'); 
    

    これはDATETIMEの癖です 入力します(1つだけではありません...)-登録するだけで、それについて知っています-次に進みます(つまり、DATETIMEを使用しないでください もう-DATEを使用してください またはDATETIME2(n) 代わりに-作業するのがはるかに良いです!):-)



    1. デフォルトで例外をスローするようにPDOを設定します

    2. password_verifyがfalseを返すのはなぜですか?

    3. SQLServerクエリを使用して「バージョン番号」列を一般的に並べ替えるにはどうすればよいですか

    4. SQLデータベースからの単純ランダムサンプル