Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Преобразувайте „smalldatetime“ в „date“ в SQL Server (T-SQL примери)

Тази статия съдържа примери за преобразуване на smalldatetime стойност до дата стойност в SQL Server.

Едно от предимствата на преобразуването на smalldatetime стойност до дата е, че намалявате размера на съхранение от 4 байта на 3 байта. Въпреки това губите времевия компонент от стойността, така че бихте направили това преобразуване само ако нямате нужда от време.

Smalldatetime тип данни както датата, така и часа. Неговият компонент за секунди винаги е настроен на нула (:00) и няма никакви дробни секунди. Неговата точност е до най-близката минута. Размерът му за съхранение е 4 байта.

Датата тип данни от друга страна, включва само датата. Неговата точност е до най-близкия ден. Размерът му за съхранение е 3 байта.

Така че, за да е ясно, когато конвертирате smalldatetime стойност до дата , годината, месецът и денят се копират. Часът не се копира.

Пример 1 – Неявно преобразуване

Ето пример за имплицитно преобразуване между smalldatetime и дата .

DECLARE @thesmalldatetime smalldatetime, @thedate date;SET @thesmalldatetime ='2025-05-21 10:15:30';SET @thedate =@thesmalldatetime;ИЗБЕРЕТЕ @thesmalldatetime AS 'smalldatetime', @theda;

Резултат:

+---------------------+-----------+| smalldatetime | датата ||---------------------+-----------|| 21.05.2025 10:16:00 | 2025-05-21 |+---------------------+-----------+

Това е имплицитно преобразуване, защото не използваме функция за преобразуване (като тези по-долу), за да я преобразуваме изрично. В този случай SQL Server изпълнява неявно преобразуване зад кулисите, когато се опитваме да присвоим smalldatetime стойност до дата променлива.

В този пример можем да видим, че частта от датата на smalldatetime стойността се копира на дата стойност и че времето не се копира.

Пример 2 – Изрично преобразуване с помощта на CAST()

Ето пример за изрично преобразуване. В този случай използвам CAST() функция директно в SELECT изявление за изрично преобразуване между smalldatetime и дата .

DECLARE @thesmalldatetime smalldatetime;SET @thesmalldatetime ='2025-05-21 10:15:30';ИЗБЕРЕТЕ @thesmalldatetime КАТО 'thesmalldatetime', CAST(@thesmalldatetime КАТО дата) AS> 'дата';
 Резултат:

+---------------------+-----------+| thesmalldatetime | дата ||---------------------+-----------|| 21.05.2025 10:16:00 | 2025-05-21 |+---------------------+-----------+

Пример 3 – Изрично преобразуване с помощта на CONVERT()

Ето пример за изрично преобразуване с помощта на CONVERT() функция вместо CAST() .

DECLARE @thesmalldatetime smalldatetime;SET @thesmalldatetime ='2025-05-21 10:15:30';SELECT @thesmalldatetime КАТО 'thesmalldatetime', CONVERT(date, @thesmalldatetime) КАТО 'date'; 

Резултат:

+---------------------+-----------+| thesmalldatetime | дата ||---------------------+-----------|| 21.05.2025 10:16:00 | 2025-05-21 |+---------------------+-----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразувайте „datetimeoffset“ в „time“ в SQL Server (T-SQL примери)

  2. Кой е най-добрият начин за съкращаване на дата в SQL Server?

  3. 5 страхотни ресурса, които да ви помогнат да промените ролята си за наблюдение на база данни

  4. Как да вмъкнете прекъсване на ред в низ VARCHAR/NVARCHAR на SQL Server

  5. Когато използвате GETDATE() на много места, по-добре ли е да използвате променлива?