sql >> Database >  >> RDS >> Sqlserver

SQL:DATEADD gebruiken met bigints

Doe gewoon de problematische DATEADD in twee stappen, beginnend met een grovere tijdseenheid (seconden, minuten, uren enz.), en voor de rest terugvallend op de fijnkorrelige.

Vermijd echter om naar het niveau van weken en maanden te gaan, want daarvoor zouden echte kalenderberekeningen nodig zijn en we zouden liever hebben dat het systeem dat afhandelt.

Het onderstaande voorbeeld moet een starttijd berekenen bij een (mogelijk) grote stroomduur in milliseconden.

-- 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. Ontsnappen aan trefwoordachtige kolomnamen in Postgres

  2. Meerdere tabellen retourneren vanuit een opgeslagen procedure

  3. Datum afkappen tot fiscaal jaar

  4. #1062 - Dubbele invoer '' voor sleutel 'unieke_id' bij het toevoegen van UNIEKE SLEUTEL (MySQL)