sql >> Database teknologi >  >> RDS >> Sqlserver

Sæt en dato i SQL-serveren

Nøglen er at bruge DATEADD og DATEDIFF sammen med den passende SQL-tidsopregning.

declare @datetime datetime;
set @datetime = getdate();
select @datetime;
select dateadd(year,datediff(year,0,@datetime),0);
select dateadd(month,datediff(month,0,@datetime),0);
select dateadd(day,datediff(day,0,@datetime),0);
select dateadd(hour,datediff(hour,0,@datetime),0);
select dateadd(minute,datediff(minute,0,@datetime),0);
select dateadd(second,datediff(second,'2000-01-01',@datetime),'2000-01-01');
select dateadd(week,datediff(week,0,@datetime),-1); --Beginning of week is Sunday
select dateadd(week,datediff(week,0,@datetime),0); --Beginning of week is Monday

Bemærk, at når du gulvbelægger med sekundet, vil du ofte få et aritmetisk overløb, hvis du bruger 0. Så vælg en kendt værdi, der med garanti er lavere end det tidspunkt, hvor du forsøger at gulve.



  1. Oracle:Bulk Collect-ydelse

  2. Hent poster, der ikke er nul efter decimaltegnet i PostgreSQL

  3. Hjælp til MySQL-opdateringssag

  4. Laravel OrderBy forhold tæller