是否有一个函数将datetime转换为sql中的bigint? 例如。我有一个日期“2010-11-02 00:00:00”,我想得到的数字为“20101102000000”
或者我是否需要编写一些自定义函数来删除 - ,space,:from datetime?
答案 0 :(得分:3)
你可以在这里试试这段代码..
update Table_1 set xnew=REPLACE(REPLACE(REPLACE (CONVERT(VARCHAR,x,20) , '-' , '' ),':',''),' ','')
但这是重复的问题我也在这里回答:Sql datatype conversion
答案 1 :(得分:1)
您无法直接在T-SQL中将'2010-11-02 00:00:00'
转换为20101102000000
所以是的,正如您所说,您需要将字符串修改为可以投射为bigint
的内容。< / p>
declare @str varchar(19) = '2010-11-02 00:00:00'
select cast(replace(replace(replace(@str, '-', ''), ' ', ''), ':', '') as bigint)
答案 2 :(得分:0)
这是一个解决方案:
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
答案 3 :(得分:0)
我最近使用的解决方案(在SQL 2008 R2中)是:
cast(CONVERT(nvarchar(8),CURRENT_TIMESTAMP,112) as bigint)
nvarchar中的字符数限制了精度。我只需要约会。