我们需要将一个列,即数据类型datetime的Start_Date更改为bigint。 对于现有数据,我们有像“2010-01-01 00:00:00”这样的记录,这些记录应该转换为bigint,并且应该返回像'20100101000000'这样的值。 我尝试使用转换和转换fn,但我没有得到欲望输出。 任何人都可以帮我解决这个问题。
答案 0 :(得分:1)
答案 1 :(得分:1)
希望这会有所帮助
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
答案 2 :(得分:0)
update Table_1 set xnew=REPLACE(REPLACE(REPLACE (CONVERT(VARCHAR,x,20) , '-' , '' ),':',''),' ','')
添加新字段xnew varchar(50),然后您可以将其转换为bigint .. x是你的日期时间字段..