TIMESTAMP
на SQL Server типът данни няма нищо да правя с дата и час!
Това е просто шестнадесетично представяне на последователно цяло число от 8 байта – добре е само за да се уверите, че редът не се е променил, след като е бил прочетен.
Можете да прочетете шестнадесетичното цяло число или ако искате BIGINT
. Като пример:
SELECT CAST (0x0000000017E30D64 AS BIGINT)
Резултатът е
400756068
В по-новите версии на SQL Server той се нарича RowVersion
- тъй като наистина е така. Вижте документите на MSDN на ROWVERSION:
Тип данни, който разкрива автоматично генерирани, уникални двоични числа в база данни. rowversion обикновено се използва като механизъм за щамповане на версии на редове в таблицата. Типът данни за версията е само нарастващо число и не запазва дата или час . За да запишете дата или час, използвайте тип datetime2date.
Така че виене можете конвертиране на SQL Server TIMESTAMP
до дата/час - просто не е дата/час.
Но ако казвате времеви печат, но наистина имате предвид DATETIME
колона - тогава можете да използвате всеки от тези валидни формати за дата, описани в темата CAST и CONVERT в помощта на MSDN. Те са дефинирани и поддържани "извън кутията" от SQL Server. Всичко друго не се поддържа, напр. трябва да правите много ръчно кастинг и конкатенация (не се препоръчва).
Форматът, който търсите, прилича малко на каноничния ODBC (стил =121):
DECLARE @today DATETIME = SYSDATETIME()
SELECT CONVERT(VARCHAR(50), @today, 121)
дава:
2011-11-14 10:29:00.470
SQL Server 2012 най-накрая ще има FORMAT
функция за персонализирано форматиране......