конвертировать дату и время в bigint - PullRequest
2 голосов
/ 10 мая 2011

Есть ли функция для преобразования datetime в bigint в sql?Например, у меня есть дата "2010-11-02 00:00:00", и я хотел бы получить результат в виде числа "20101102000000"

Или мне нужно написать некоторую пользовательскую функцию, которая будет удалять -, пробел,: с даты?

Ответы [ 4 ]

3 голосов
/ 10 мая 2011

Вы можете попробовать этот код здесь ..

update Table_1 set xnew=REPLACE(REPLACE(REPLACE (CONVERT(VARCHAR,x,20) , '-' , '' ),':',''),' ','')

но это дублирующий вопрос, на который я ответил и здесь: преобразование типа данных Sql

1 голос
/ 10 мая 2011

Вы не можете напрямую конвертировать '2010-11-02 00:00:00' в 20101102000000 в T-SQL, так что да, как вы говорите, вам нужно будет преобразовать строку в нечто, что вы можете привести как bigint.

declare @str varchar(19) = '2010-11-02 00:00:00'
select cast(replace(replace(replace(@str, '-', ''), ' ', ''), ':', '') as bigint)
0 голосов
/ 04 октября 2017

В последнее время я использовал решение (в SQL 2008 R2):

cast(CONVERT(nvarchar(8),CURRENT_TIMESTAMP,112) as bigint)

Количество символов в nvarchar ограничивает точность.Мне нужна только дата.

0 голосов
/ 10 мая 2011

Вот решение:

declare @t datetime = '2010-11-02 00:00:00'

select  DATEPART(second, @t) +
        DATEPART(minute, @t) * 100 +
        DATEPART(hour, @t) * 10000 +
        DATEPART(day, @t) * 1000000 +
        DATEPART(month, @t) * 100000000 +
        DATEPART(year, @t) * 10000000000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...