首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在T-SQL中将DateTime转换为精度大于days的数字?

问如何在T-SQL中将DateTime转换为精度大于days的数字?
EN

Stack Overflow用户
提问于 2009-06-15 18:11:29
回答 8查看 183.8K关注 0票数 13

下面的两个查询转换为相同的数字

代码语言:javascript
复制
SELECT CONVERT(bigint,CONVERT(datetime,'2009-06-15 15:00:00'))
SELECT CAST(CONVERT(datetime,'2009-06-15 23:01:00') as bigint)

结果

代码语言:javascript
复制
39978
39978

仅当日期不同时,生成的数字才会不同。有没有办法将DateTime转换为更精确的数字,就像我们在.NET中使用.Ticks属性所做的那样?

我需要至少一分钟的精确度。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-06-15 18:14:56

好吧,我会这样做:

代码语言:javascript
复制
select datediff(minute,'1990-1-1',datetime)

其中'1990-1-1‘是任意基准日期时间。

票数 21
EN

Stack Overflow用户

发布于 2009-06-15 18:14:57

代码语言:javascript
复制
SELECT CAST(CONVERT(datetime,'2009-06-15 23:01:00') as float)

收益率为39977.9590277778

票数 11
EN

Stack Overflow用户

发布于 2013-06-25 19:28:21

代码语言:javascript
复制
DECLARE @baseTicks AS BIGINT;
SET @baseTicks = 599266080000000000; --# ticks up to 1900-01-01

DECLARE @ticksPerDay AS BIGINT;
SET @ticksPerDay = 864000000000;

SELECT CAST(@baseTicks + (@ticksPerDay * CAST(GETDATE() AS FLOAT)) AS BIGINT) AS currentDateTicks;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/997514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档