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

間の時間の Datepart (Convert date の代わりに)

    たとえば、これを使用できます

    DECLARE 
        @min FLOAT = CAST(CAST('19000101 12:20' AS DATETIME) AS FLOAT),
        @max FLOAT = CAST(CAST('19000101 15:50' AS DATETIME) AS FLOAT)
    
    SELECT 
        *
    FROM table
    WHERE CAST(DateField AS FLOAT) - FLOOR(CAST(DATEFIELD AS FLOAT)) BETWEEN @min AND @max
      

    しかし、これは実際には解決策ではありません!!!

    最善の方法は、

    として計算列をもう 1 つ導入することです。
    NewColumn AS DATEPART(HOUR, DateColumn)*100+DATEPART(minute, DateColumn)  
      

    その上にインデックスを作成し、where 句で使用します

    WHERE NewColumn BETWEEN 1220 AND 1550
      

    1. ユーザー定義のテーブル タイプに対する EXECUTE 権限が拒否されていますか?

    2. PDOの配列結果から重複データを削除する方法

    3. ルームライブラリを使用してstrftimeとdatetimeを正しく使用するにはどうすればよいですか?

    4. Django-(OperationalError)致命的:ユーザーユーザー名のID認証に失敗しました