sql >> Databasteknik >  >> RDS >> Sqlserver

SQL:Använder DATEADD med bigints

Gör bara det problematiska DATEADD i två steg, börja med en grövre tidsenhet (sekunder, minuter, timmar etc.), och sedan falla tillbaka till den finkorniga för resten.

Undvik dock att gå till nivån för veckor och månader eftersom det skulle kräva faktiska kalenderberäkningar och vi skulle föredra att systemet hanterar det.

Exempel nedan behöver beräkna en starttid givet en (möjligen) lång strömlängd i millisekunder.

-- large durations can overflow the integer argument needed for DATEADD

-- so do as two steps subtracting minutes (60000ms) and then remaining milliseconds.

DATEADD(ms, -large_duration_ms%60000, DATEADD(minute, -large_duration_ms/60000, GETDATE()))


  1. Ansluta en ny Rails-app till en befintlig MySQL-databas

  2. Returnera frågeresultat som en kommaseparerad lista i Oracle

  3. Använda icke-fångande grupper i MySQL REGEXP

  4. Introduktion till datakopplingar och relationer