select
dateadd(day,-2,getdate())
--两天前
select
dateadd(day,2,getdate())
--两天后
或者:
select
dateadd(hour,-48,getdate())
select
dateadd(hour,48,getdate())
sql
server获取当前时间的函数是getdate()
,没有gettime函数
从sqlserver数据库中提取日期应该使用,并把年月日分别截取出来应该使用
数据库提供的时间函数。
1:使用year,month,day用来提取年月日
如:select year(getdate()),month(getdate()),day(getdate())
2:使用DATEPART 获取年月日
如:select DATEPART('year',getdate()),DATEPART('month',getdate()),DATEPART('day',getdate())
----------------------------------------------------------------------------
如果字段是varchar类型的话,可以先将字段转换为日期类型。
使用类型转换函数convert或者cast
如:cast('2015-07-14' as datetime)
SQLSERVER的GETDATE()函数返回的是一个datetime类型的值。是以运行该SQL语句的计算机标准内部格式返回当前系统日期和时间,如果需要得到固定格式的日期/时间字符串,可以将结果进行格式化。你可以试一下以下语句获得精确到秒的固定格式的日期/时间字符串,SELECT CONVERT(varchar(19),GETDATE(),21)
呵呵,用datetime就可以了
人是活的,并不是死的,数据库中存有日期,但是不代表我在界面上就显示日期,这一步完全可以在程序中实现的,而且很简单
生活对一个人来说,有很多条路可以走,程序也是一样的。
drop function dbof_get_workdays
go
CREATE FUNCTION dbof_get_workdays(@bdate DATETIME, @edate DATETIME)
RETURNS INTEGER
AS BEGIN
DECLARE @workdays INTEGER
IF @bdate > @edate
RETURN -1
SELECT @workdays =
--如果终止日期与起始日期在同一个星期内,只需要计算有几天即可
CASE WHEN DATEPART(wk, @edate-1)-DATEPART(wk,@bdate) = 0 THEN
CASE WHEN DATEPART(dw, @bdate) > 5 THEN 0
WHEN DATEPART(dw, @edate-1) > 5 THEN 6 - DATEPART(dw, @bdate)
ELSE DATEPART(dw, @edate-1) - DATEPART(dw, @bdate) + 1 END
--如果终止日期与起始日期在不同的星期内
--首先计算出除前后两个星期外完整的星期数 5
ELSE (DATEDIFF(dd,@bdate,@edate)
- (8-DATEPART(dw, @bdate))
- DATEPART(dw, @edate-1)) / 7 5
--再加上第一个星期里的工作日数
+ CASE WHEN DATEPART(dw, @bdate) < 6 THEN 6 - DATEPART(dw, @bdate)
ELSE 0 END
--加上末一个星期里的工作日数
+ CASE WHEN DATEPART(dw, @edate-1)>5 THEN 5 ELSE DATEPART(dw, @edate-1) END
END
RETURN @workdays
END
go
select dbof_get_workdays(dateadd(day,-21,getdate()),getdate())
以上就是关于sql server高手请进 怎么获得距当前时间“两天”的时间全部的内容,包括:sql server高手请进 怎么获得距当前时间“两天”的时间、sqlserver中如何取日期的年月、SQLServer getdate获取的时间为什么是1899/12/30 0:00:00等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)