首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >datetime中的TSQL条带日期

datetime中的TSQL条带日期
EN

Stack Overflow用户
提问于 2010-07-20 00:41:42
回答 3查看 14.9K关注 0票数 11

从DATETIME中剥离日期的最佳方法是什么,以便只留下时间来进行比较?

我知道我可以做到以下几点:

代码语言:javascript
复制
CONVERT(DATETIME, CONVERT(VARCHAR(8), GETDATE(),8))

但这涉及到转换和字符。如果我想检查一个时间(包括分钟)是否在DATETIME列中存储的另外两个时间之间,有没有一种很好的方法可以做到这一点,而不必依赖于转换为字符串?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-20 00:45:15

尝试使用Essential SQL Server Date, Time, and DateTime Functions中的TimeOnly函数

代码语言:javascript
复制
create function TimeOnly(@DateTime DateTime)
returns datetime
as
    begin
    return dateadd(day, -datediff(day, 0, @datetime), @datetime)
    end
go

或者简单地将DateTime转换为SQL Server2008中的时间:

代码语言:javascript
复制
declare @time as time
set @time = cast(dateTimeVal as time)
票数 12
EN

Stack Overflow用户

发布于 2010-07-20 00:45:27

如果您使用的是SQL 2008

代码语言:javascript
复制
SELECT CAST(GETDATE() AS TIME)
票数 14
EN

Stack Overflow用户

发布于 2010-07-20 00:45:03

代码语言:javascript
复制
DECLARE 
  @Now DateTime, 
  @Today DateTime,
  @Time DateTime

SET @Now = GetDate() 
SET @Today = DateAdd(dd, DateDiff(dd, 0, @Now), 0) 

SET @Time = DateAdd(ss, DateDiff(ss, @Today, @Now), 0)

SELECT @Time
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3283039

复制
相关文章

相似问题

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