Преобразование типа данных Sql - PullRequest
0 голосов
/ 10 мая 2011

нам нужно изменить один столбец, т.е. Start_Date типа данных datetime на bigint.Для существующих данных у нас есть записи типа «2010-01-01 00:00:00», которые должны быть преобразованы в bigint и должны возвращать значение «20100101000000».Я попытался с преобразованием и приведением FN, но я не получаю вывод желания.Может ли кто-нибудь помочь мне в этом.

Ответы [ 3 ]

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

Надеюсь, что это поможет

    SELECT  DATENAME(year, Datetime_Colum)+''+
            SUBSTRING( CAST(CONVERT(DATE,Datetime_Colum,101)AS VARCHAR(8)),6,2)+''+
            DATENAME(DAY, Datetime_Colum)+''+
            DATENAME(hour, Datetime_Colum)+''+
            DATENAME(minute, Datetime_Colum)+''+
            DATENAME(second, Datetime_Colum)
    FROM    [dbo].[Table]

- // ========================================================================

Функция:

CREATE FUNCTION udf_Convert_Datetime_To_INT 
(
    @DATETIME DATETIME
)

RETURNS BIGINT
AS
BEGIN

DECLARE @Result BIGINT

SELECT @Result =   CAST(( DATENAME(YEAR,@DATETIME) +''+
                    SUBSTRING( CAST(CONVERT(DATE,GETDATE(),101)AS VARCHAR(8)),6,2)+''+
                    DATENAME(DAY,@DATETIME)+''+
                    DATENAME(hour, @DATETIME)+''+
                    DATENAME(minute, @DATETIME)+''+
                    DATENAME(second, @DATETIME)) AS BIGINT)
RETURN @Result

END
GO

PRINT DBO.udf_Convert_Datetime_To_INT (GETDATE())

Результат: 20110511152843

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

Сначала конвертируйте datetime в varchar.

Затем выполните , заменив для '-' на пустой символ ''

0 голосов
/ 10 мая 2011
update Table_1 set xnew=REPLACE(REPLACE(REPLACE (CONVERT(VARCHAR,x,20) , '-' , '' ),':',''),' ','')

добавьте новое поле xnew varchar (50), затем вы можете преобразовать его в bigint .. x - это ваше поле даты и времени ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...