sql >> Database >  >> RDS >> Database

Hoe u de huidige datum en tijd kunt krijgen (zonder tijdzone) in T-SQL

Probleem:

U wilt de huidige datum en tijd in T-SQL zien, maar u wilt niet dat de tijdzone wordt verschoven.

Oplossing:

We gebruiken GETDATE(), CURRENT_TIMESTAMP en SYSDATETIME() om de huidige datum en tijd te krijgen zonder de tijdzoneverschuiving. Met de eerste twee functies kunnen we de huidige tijd met een lagere precisie krijgen. (GETDATE() is een T-SQL-functie, terwijl CURRENT_TIMESTAMP een SQL Standard-functie is; beide functies retourneren hetzelfde gegevenstype). De derde functie, SYSDATETIME(), krijgt een tijd met een hogere precisie.

SELECT CURRENT_TIMESTAMP ;

Dit is het resultaat van de zoekopdracht:

2019-08-14 10:01:06.983

Discussie:

In een SQL Server-database is de CURRENT_TIMESTAMP functie retourneert de huidige datum en tijd (d.w.z. de tijd op de machine waarop die SQL Server-instantie wordt uitgevoerd) als een datetime data type. Datetime is een tijd met een lagere precisie die maximaal drie fracties van seconden heeft. (In ons voorbeeld is dit 983.)

GETDATE() is vergelijkbaar met de CURRENT_TIMESTAMP en geeft hetzelfde resultaat. Het verschil is dat CURRENT_TIMESTAMP is SQL-standaard, terwijl GETDATE() specifiek is voor SQL Server.

SELECT GETDATE() ;

Als u een nauwkeurigere huidige datum en tijd wilt krijgen zonder tijdzoneverschuiving, kunt u natuurlijk de functie SYSDATETIME() gebruiken. Deze functie retourneert een datetime2 gegevenstype met zeven fractionele seconden. Bekijk het onderstaande voorbeeld:

SELECT SYSDATETIME() ;

Dit is het resultaat:

2019-08-14 10:01:06.9754163

  1. Kan ik dit oplossen met pure mysql? (aansluiten op '' gescheiden waarden in een kolom)

  2. Het laatste record in elke groep ophalen - MySQL

  3. Het verzoek is mislukt of de service heeft niet tijdig gereageerd?

  4. R DBI ODBC-fout:nanodbc/nanodbc.cpp:3110:07009:[Microsoft][ODBC-stuurprogramma 13 voor SQL Server]Ongeldige descriptorindex