Удалить миллисекунды из поля даты и времени в SQL Server 2008 - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть поле 'логин', которое в настоящее время отображает время даты как '2019-04-26 10: 20: 23.050'

Я хочу показывать только '2019-04-26 10: 20'

Я решил это раньше, но не могу найти экстракт.Самое близкое, что я могу найти сейчас, это

convert(datetime, CONVERT(nchar(16),login,120),120)

Но это только «2019-04-26 10: 20: 00.000», тогда как я хочу убрать последние 5 нулей.Есть идеи, пожалуйста?

Ответы [ 2 ]

4 голосов
/ 30 апреля 2019

Чтобы удалить миллисекунды, вы можете использовать smalldatetime: cast(login as smalldatetime)

Для удаления секунд также используйте datetime2 (0): cast(login as datetime2(0))

0 голосов
/ 30 апреля 2019

Чтобы получить очень специфический формат, иногда вам нужно конвертировать и использовать строку. Обычно вы хотите вернуть собственный формат и позволить клиенту применять формат отображения. Используя простую манипуляцию строк:

 DECLARE @Login DATETIME ='01/01/2019 10:20:00.500'

 SELECT CAST(CAST(@Login AS DATE) AS NVARCHAR(50))+' '+
        CAST(DATEPART(HOUR,@Login) AS NVARCHAR(50))+':'+
        CAST(DATEPART(MINUTE,@Login) AS NVARCHAR(50))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...