问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于SQL Server里边的日期计算

发布网友 发布时间:2024-04-05 23:42

我来回答

5个回答

热心网友 时间:2024-04-13 23:19

答案

select DATEDIFF(dd,A,B) as 天数 from tablename
或者
insert into tablename (a,b,c)values(a,b ,DATEDIFF(dd,A,B))
用insert 的后触发
update c = DATEDIFF(dd,A,B)

解释

DATEDIFF
返回跨两个指定日期的日期和时间边界数。

语法
DATEDIFF ( datepart , startdate , enddate )

参数
datepart

是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。

日期部分 缩写
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms

startdate

是计算的开始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。

如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。

有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。

enddate

是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

返回类型
integer

注释
startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。

当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。

计算跨分钟、秒和毫秒这些边界的方法,使得 DATEDIFF 给出的结果在全部数据类型中是一致的。结果是带正负号的整数值,其等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。

示例
此示例确定在 pubs 数据库中标题发布日期和当前日期间的天数。

USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO

请参见

热心网友 时间:2024-04-13 23:16

直接计算的话,就是:UPDATE tbl SET C = DATEDIFF(day, A, B)(没有考虑你两列的合理性,比如说B列为NULL,那么值为NULL。)你可以根据具体需要修改为
UPDATE C = DATEDIFF(day, A, ISNULL(B, GETDATE()))

如果要直接加的话,ALTER TABLE tbl ADD C AS DATEDIFF(day, A, B)

热心网友 时间:2024-04-13 23:22

如果想产生新的列,又不希望更改基础表的话,可以使用视图!

例如: 假设你的基础表是 table_name
create view view_table_name
as
select * , DATEDIFF ( day ,列A, 列B ) as C from table_name

以上 使用view_table_name 视图就可以 完成你需要的!!!
调用视图
select * from view_table_name

热心网友 时间:2024-04-13 23:17

在你的表中,添加一列C,并在列属性中的:计算所得的列规范——公式中写上:DATEDIFF(day, A, B)就可以了。

或者运行如下语句:
ALTER TABLE table
ADD C AS DATEDIFF(day, A, B)

热心网友 时间:2024-04-13 23:20

-- A,B都是日期型:
select day(B - A) as C from table_name
-- 如果想要建立一个列C,在还书的时候,使C = day( B - A)就要用触发器实现,或者修改你的insert语句
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
男生买卫生巾支援灾区对吗? 打了耳洞三天下了耳钉,怎么办!! cs七龙珠家里两台电脑怎么连局域网玩 CS七龙珠怎么创建联网房间 CS七龙珠怎样和电脑玩 CS七龙珠能和电脑对打吗 不然怎样调对打模式有哪些地图!!!急需... 糖葫芦的山楂在哪里买 衡水市康宁街与人民路交叉口市一建家属院7号楼,1-201怎么翻译 梦见朋友搬家时小孩因我不愿离去,且小孩坐在床上跑出许老鼠? 梦见搬家是什么预兆解梦 武汉卓越金盛展览有限公司怎么样? 武汉建业展览有限公司怎么样? 武汉至臻空间展览装饰工程有限公司怎么样? 武汉旭日东升展示工程有限公司怎么样? 请问武汉展览公司哪家信誉最好? 武汉恒运通展示工程有限公司怎么样? 张小斐出道挺长时间了,为什么之前都没火,演了部电影就火起来了? 发1388红包是什么意思? 以副热带为中心的洋流,呈什么方向流动 莘塍一中今年要搬到哪里 “新莘塍”怎么读??? win11xbox应用一直在logo界面 莘塍镇怎么念? 审计不能以成果为考核依据的原因 不锈钢焊点电镀起泡,焊点地方抛光不到。怎样处理电镀出来不起泡 167的红包是什么意思? 现在英雄联盟主流英雄都是什么呀,中单,上单,打野,AP AD 之类的... 钻戒如何进行改圈呢 白樟镇的历史沿革 ...融合、未来融合、混沌巫师、沼地的魔神王、魔法阵这些卡分别在什么卡... 求海贼王BL同人小说(最好是猪脚是索隆的啊~~~),要完结的,谢谢!!_百... 求海贼王BL同人小说,索隆受,shadudu.112@163.com,邮箱我,特别想看... 广州取消驾驶证考试报名需要什么证件?一定要本人亲自去吗? 前几天感冒了,可好了后眼睛里有很多红血丝是怎么回事? 枞阳佳慈体检中心能做入职检查嘛? 松子放冰箱里冻九年了还可以吃吗松子放冰箱里冻九年了是否还可以吃 老板感觉员工没有事情干,应该怎么办呢? 对科学研究充满热爱与执着的人有谁? 照片里的繁体字从上到下数第四个繁体字是哪个简化字,岩户神什么之起显... 请教SAT两道题,分不清which从句与现在分词的区别 吃了仙琚紧急避孕药胶囊后。两天了一直都没 湿疹可以擦擦脸油吗? 宝宝得了湿疹,是应该多洗脸吗?洗好后可以擦宝宝用的擦脸油吗? 只有鸡蛋和茶叶煮出来的茶水可以喝吗 张艺谋在过去几年里已经创作了许多有名的电影.用英语怎么说 著名导演张艺谋将要致力于一部新的电影怎么翻译? 济源中医院后面老年公寓叫什么 一个手机号注册了两个,如何切换? 牛巴店有啥好吃的 小区门被焊死我砸开谁负责