sql >> Database >  >> RDS >> Sqlserver

Hoe extraheer je alleen datum uit datetime in T-Sql?

De beste manier is:

   SELECT DATEADD(day, DATEDIFF(Day, 0, @ADate), 0) 

Dit komt doordat SQL Server intern alle datums opslaat als twee gehele getallen, waarvan de eerste het ****aantal dagen*** sinds 1 januari 1900 is. (de tweede is het tijdsgedeelte, opgeslagen als het aantal dagen seconden sinds middernacht (seconden voor SmallDateTime s, of milleseconden voor DateTime s)
Het is beter om de bovenstaande uitdrukking te gebruiken omdat het alle conversies vermijdt, en dat eerste gehele getal in een interne representatie van datums rechtstreeks leest en opent zonder enige verwerking uit te voeren... de twee nullen in de bovenstaande uitdrukking (die 1 vertegenwoordigen jan 1900), worden ook direct gebruikt zonder verwerking of conversie, omdat ze exact overeenkomen met de SQL server-interne representatie van de datum 1 jan 1900 zoals gepresenteerd (als een geheel getal).

*OPMERKING. Eigenlijk het aantal datumgrenzen (middernachten) dat je moet overschrijden om van de ene datum naar de andere te gaan.



  1. Hoe kom ik erachter wanneer een bepaalde tabel in Oracle is gemaakt?

  2. Hoe mysql root-wachtwoord te wijzigen

  3. Postgres:moet men indexen maken voor of na het vullen van tabellen

  4. Hoe maak je een MySQL-databaseback-up en plaats je deze elke nacht in Amazon s3 met behulp van het Cron-tabblad?