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

Как да комбинирате дата от едно поле с време от друго поле - MS SQL Server

Можете просто да добавите двете.

  • ако Time part на вашата Date колоната винаги е нула
  • и Date part от вашето Time колоната също винаги е нула (базова дата:1 януари 1900 г.)

Добавянето им връща правилния резултат.

SELECT Combined = MyDate + MyTime FROM MyTable

Обосновка (поздравления за ErikE/dnolan)

Работи по този начин поради начина, по който датата се съхранява като две 4-байтовиIntegers като левите 4 байта са date а десните 4 байта са Time . Все едно да правиш $0001 0000 + $0000 0001 = $0001 0001

Редактиране по отношение на новите типове SQL Server 2008

Date и Time са типове, въведени в SQL Server 2008 . Ако настоявате за добавяне, можете да използвате Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)

Edit2 относно загубата на прецизност в SQL Server 2008 и по-нови версии (поздравления за Мартин Смит)

Разгледайте Как да комбинирате дата и час към datetime2 в SQL Server? за да предотвратите загуба на прецизност при използване на SQL Server 2008 и по-нова версия.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ExecuteReader изисква отворена и налична връзка. Текущото състояние на връзката е Свързване

  2. ИЗБЕРЕТЕ DISTINCT на една колона

  3. Дефиниране на връзка един към един в SQL Server

  4. Как мога да ИЗБЕРЕМ множество колони в рамките на CASE WHEN на SQL Server?

  5. Надстроих ODBC драйвера на SQL Server и производителността беше отрицателно засегната. Какво мога да направя?