是否有一个函数将datetime转换为sql中的bigint? 例如我有一个日期“2010-11-02 00:00:00”,我想获得结果作为编号“20101102000000”将datetime转换为bigint
或者我需要写一些自定义函数,将删除 - ,空间,从:约会时间?
是否有一个函数将datetime转换为sql中的bigint? 例如我有一个日期“2010-11-02 00:00:00”,我想获得结果作为编号“20101102000000”将datetime转换为bigint
或者我需要写一些自定义函数,将删除 - ,空间,从:约会时间?
你可以试试这里这个代码..
update Table_1 set xnew=REPLACE(REPLACE(REPLACE (CONVERT(VARCHAR,x,20) , '-' , ''),':',''),' ','')
但这是重复的问题,我的答案是这里太:Sql datatype conversion
您需要120作为4位数年份的转换编号。你也想把整个数字作为int – 2011-05-10 12:27:43
在T-SQL无法转换'2010-11-02 00:00:00'
到20101102000000
直接这么肯定的,你说,你需要修改字符串为你可以铸造的东西bigint
。
declare @str varchar(19) = '2010-11-02 00:00:00'
select cast(replace(replace(replace(@str, '-', ''), ' ', ''), ':', '') as bigint)
但@Pramodtech以'DATETIME'开头,而不是字符串。你在这里有什么可以在字符串转换后工作。 – eksortso 2011-05-10 12:51:29
啊好点我的眼睛只是跳到引号,我假设一个字符串 – 2011-05-10 13:00:39
这里是一个解决方案:
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
我一直在使用最近的溶液(在SQL 2008 R2)是:
cast(CONVERT(nvarchar(8),CURRENT_TIMESTAMP,112) as bigint)
字符在nvarchar的数量限制了精确。我只需要日期。
这没有什么意义。你的意思是你想要它作为一个字符串。格式化为:“yyyyMMddHHmmss”? - 出于兴趣,你为什么需要它作为一个大整数? – 2011-05-10 12:22:22
@Lee Gunn - 不一定,你可以决定将你的日期存储为“整数”,并假定数字的“格式”,即解释它的方式,就像yyyyMMddHHmmss。这是最后的数字是秒,接下来的两个是分钟等 – 2011-05-10 12:34:18
但日期已经是一个很大的整数......它是自纪元以来的蜱(或其他)的数量。 – 2011-05-10 12:36:07