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

Udeladelse af millisekunderne i en dato

Brug DATETIME2 , en ny datatype i SQL Server 2008, der understøtter fraktioneret præcision:

VÆLG KONVERTER(DATETIME2(0),SYSDATETIME()) [åååå-mm-dd tt:mm:ss], KONVERTER(DATETIME2(1),SYSDATETIME()) [åååå-mm-dd tt:mm:ss.f], KONVERTER(DATETIME2(2),SYSDATETIME()) [åååå-mm-dd tt:mm:ss.ff], KONVERTER(DATETIME2(3),SYSDATETIME()) [åååå-mm-dd tt:mm:ss.fff], KONVERTER(DATETIME2(4),SYSDATETIME()) [åååå-mm-dd tt:mm:ss.ffff], KONVERTER(DATETIME2(5),SYSDATETIME()) [åååå-mm -dd tt:mm:ss.ffffff], KONVERTER(DATETIME2(6),SYSDATETIME()) [åååå-mm-dd tt:mm:ss.ffffff], KONVERTER(DATETIME2(7),SYSDATETIME()) [åååå -mm-dd tt:mm:ss.fffffff] 

Omregningen afrundes til nærmeste enhed, f.eks.:

2014-09-04 09:35:47.0162993 som DATETIME2(4) -> 2014-09-04 09:35:47.0163 

Alternativt på SQL 2005 og tidligere:

SELECT original =GETDATE(), [floor] =DATEADD(ms,-DATEDEL(ms,GETDATE()),GETDATE()), [loft] =DATEADD(ms,1000-DATEDEL(ms, GETDATE()),GETDATE()), [afrundet] =DATEADD(ms,CASE WHEN DATEPART(ms,GETDATE()) <500 THEN 0 ELSE 1000 END-DATEPART(ms,GETDATE()),GETDATE())

Dette er lidt hurtigere end at konvertere til og fra en strengrepræsentation.



  1. Hvordan gendannes mysql-database i XAMPP?

  2. Få gennemsnitlig tid mellem tiderne i SQL

  3. Vil du slette alle poster undtagen den seneste?

  4. Findes der i Oracle en funktion, der beregner forskellen mellem to datoer?