sql >> Databáze >  >> RDS >> Sqlserver

Jak v T-Sql extrahujete pouze datum z datetime?

Nejlepší způsob je:

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

Je to proto, že interně SQL Server ukládá všechna data jako dvě celá čísla, z nichž první je ****počet dní*** od 1. ledna 1900. (druhé je časová část, uložená jako počet sekund od půlnoci. (sekundy pro SmallDateTime s nebo milesekundy pro DateTime s)
Použití výše uvedeného výrazu je lepší, protože se vyhne všem převodům, přímo čte a přistupuje k prvnímu celému číslu v interní reprezentaci data, aniž by bylo nutné provádět jakékoli zpracování... dvě nuly ve výše uvedeném výrazu (které představují 1 ledna 1900), jsou také přímo využívány bez zpracování nebo konverze, protože odpovídají interní reprezentaci SQL serveru k datu 1. ledna 1900 přesně tak, jak je uvedeno (jako celé číslo)..

*POZNÁMKA. Ve skutečnosti je to počet datových hranic (půlnoc), které musíte překročit, abyste se dostali z jednoho data na druhé.



  1. T-SQL:Jak můžete vytvořit tabulku pomocí SELECT?

  2. Vrátit pouze číselné hodnoty v MariaDB

  3. mysql.h chybí .... (Ruby on Rails, OSX)

  4. Připojení MySQL se neuzavře