3个日期相减

milizi820 2009-04-07 10:57:55
A表有日期字段YMD,B表有日期 YMD2(代表放假日期)
天数=(当天日期-YMD)-YMD2中包含在当天日期和YMD中的天数

例如 A.YMD=2009/04/01 B.YMD2中有 2009/04/02 2009/04/03

则天数=当天日期(2009/04/07)-2009/04/01 -2(B表中的2天)
天数=4
...全文
178 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
milizi820 2009-04-09
  • 打赏
  • 举报
回复
在表B中增加一列天数,,,天数=当天日期-日期-休假日期(包含在当天日期和日期中的天数)

milizi820 2009-04-09
  • 打赏
  • 举报
回复
表B 生产线 休假日期 表A 产品 生产线 日期
ZA1 20091002 ZLG260200J ZA2 NULL
ZA2 20091002 ZLT098200J ZA2 NULL
ZZ1 20091002 ZLY923200J ZA2 NULL
ZZ2 20091002 ZMA481100J ZA2 20090408
ZA1 20091001 ZLS473220J ZA2 NULL
ZA2 20091001 ZLZ321000J ZA2 20090408
ZZ1 20091001 ZMC048000J ZA2 20090409
ZZ2 20091001 ZLW986110J ZA2 20090402
ZZ2 20090506 ZLJ530200J ZA2 NULL
ZA1 20090506 ZMC448000J ZA1 20090409
ZA2 20090506 ZLK337200J ZA2 NULL
ZZ1 20090506 ZLW002000J ZA2 20090408
ZZ2 20090505 ZMB049000J ZA2 20090407
ZA1 20090505 ZLZ953100J ZA2 20090408
ZA2 20090505 ZLV232100J ZA2 20090326
ZZ1 20090505 ZMB809000J ZA1 20090409
ZZ1 20090504 ZMB813200J ZA1 20090409
ZZ2 20090504 ZLG508222J ZA2 NULL
ZA1 20090504 ZLT976122J ZA2 NULL
ZA2 20090504 ZJN794200H ZA2 NULL
ZZ1 20090503 ZMA364000J ZA2 20090409
ZZ2 20090503 ZLY734210J ZA2 20090402
ZA1 20090503 ZMC130200J ZA1 20090409
ZA2 20090503 ZLX374200J ZA2 20090408
ZZ1 20090502 ZMB480100J ZA1 20090409
ZZ2 20090502 ZMB825000J ZA1 20090409
ZA1 20090502 ZMC332000J ZA1 20090409
ZA2 20090502 ZMB784000J ZA2 20090409
ZZ1 20090501 ZLY845100J ZA2 20090330
ZZ2 20090501 ZMC032000J ZA2 20090408
ZA1 20090501 ZMA745000J ZA2 20090408
ZA2 20090501 ZLL628300J ZA2 NULL
ZZ1 20090430 ZLP661200J ZA2 NULL
ZZ2 20090430 ZLX778100J ZA1 20090325
ZA1 20090430 ZMB065100J ZA1 20090408
ZA2 20090430 ZJX332200H ZA2 NULL
ZZ1 20090429 ZMB208300J ZZ2 20090409
ZZ2 20090429 ZLU969200J ZA2 20090320
ZA1 20090429 ZJV678200H ZA2 NULL
ZA2 20090429 ZMB838000J ZA2 20090409
ZZ1 20090406 ZLV339120J ZA2 20090331
ZZ2 20090406 ZLY802000J ZA2 20090402
ZA1 20090406 ZMB468200J ZA1 20090409
ZA2 20090406 ZKZ480200H ZA2 NULL
ZZ1 20090405 ZLW946220J ZA2 20090402
ZZ2 20090405 ZKV381200H ZA2 NULL
ZA1 20090405 ZMC319000J ZA1 20090409
ZA2 20090405 ZJN422200H ZA2 NULL
ZZ1 20090404 ZLZ477000J ZA2 20090403
ZZ2 20090404 ZLZ728100J ZA2 20090408
ZA1 20090404 ZJB843200H ZA2 NULL
ZA2 20090404 ZMA425000J ZA2 20090408
ZZ1 20090403 ZMA232000J ZA2 20090408
ZZ2 20090403 ZKZ250200H ZA2 NULL
ZA1 20090403 ZMC351000J ZA1 20090409
ZA2 20090403 ZMC352100J ZA1 20090409
ZZ2 20090317 ZMA687000J ZA2 20090409
ZA1 20090317 ZMB101000J ZA2 20090409
ZA2 20090317 ZMB860000J ZA1 20090409
ZZ1 20090317 ZLW771000J ZA2 20090325
ZZ2 20090316 ZLY956400J ZA1 20090329
ZA1 20090316 ZJY838220H ZA2 20090409
ZA2 20090316 ZMC401000J ZA2 20090409
ZZ1 20090316 ZLY721200J ZA2 20090407
ZZ2 20090315 ZLY957600J ZA1 20090330
ZZ1 20090315 ZMC315000J ZA2 20090409
ZA1 20090315 ZLJ046200J ZA2 NULL
ZA2 20090315 ZJY821200H ZA2 NULL
ZZ2 20090314 ZMB771100J ZA2 20090408
ZZ1 20090314 ZLT861200J ZA2 NULL
ZA1 20090314 ZMB985100J ZA1 20090409
ZA2 20090314 ZMC026000J ZA2 20090408
ZZ1 20090303 ZMA758100J ZA2 NULL
ZA1 20090303 ZMA758200J ZA2 NULL
ZZ2 20090303 ZMB960000J ZA2 20090408
ZA2 20090303 ZLU468310J ZA2 20090328
ZZ1 20090302 ZLW367000J ZZ2 20090409
ZA1 20090302 ZLS768200J ZA2 NULL
ZZ2 20090302 ZMA138200J ZA2 20090409
ZA2 20090302 ZMB783100J ZA2 20090409
ZZ1 20090301 ZKL280200H ZA2 NULL
ZZ2 20090301 ZMA220100J ZA2 20090406
ZA1 20090301 ZLZ540200J ZA2 20090408
ZA2 20090301 ZLV884200J ZA2 NULL
ZZ1 20090228 ZMC403000J ZA1 20090409
ZZ2 20090228 ZMA117000J ZZ2 20090409
ZA1 20090228 ZMC199000J ZA1 20090408
ZA2 20090228 ZLU969100J ZA2 20090320
ZA1 20090221 ZMA107100J ZA2 20090402
ZA2 20090221 ZMA657000J ZA2 20090402
ZZ1 20090221 ZMC378000J ZZ1 20090409
ZZ2 20090221 ZLV158300J ZA2 20090409
ZA1 20090220 ZLY150100J ZNF NULL
ZA2 20090220 ZLU018200J ZA2 NULL
ZZ1 20090220 ZLY147A00J ZNF NULL
ZZ2 20090220 ZMA947000J ZA2 20090408
ZA1 20090219 ZMB482300J ZA1 20090408
ZA2 20090219 ZMA857000J ZA2 20090409
ZZ1 20090219 ZLW478112J ZA2 20090403
ZZ2 20090219 ZMB924200J ZA1 20090409
ZA1 20090218 ZLZ239000J ZZ2 20090402
ZA2 20090218 ZLY775200J ZA2 NULL
ZZ1 20090218 ZKR884110H ZA2 NULL
ZZ2 20090218 ZLY883200J ZA2 20090402
ZA1 20090130 ZMC210000J ZA1 20090409
ZA2 20090130 ZLV783100J ZA2 20090407
ZZ1 20090130 ZMB390000J ZA1 20090409
ZZ2 20090130 ZMA127131J ZZ2 20090407
ZA1 20090129 ZLX431600J ZNF 20090408
ZA2 20090129 ZJT936220H ZA2 NULL
ZZ1 20090129 ZMA840200J ZA2 20090408
ZZ2 20090129 ZMB478100J ZA1 20090409
ZA1 20090128 ZMA863111J ZZ2 NULL
ZA2 20090128 ZMA863112J ZZ2 NULL
ZZ1 20090128 ZMA815231J ZZ2 NULL
ZZ2 20090128 ZMA713200J ZA2 20090407
ZA1 20090127 ZMB280000J ZA2 20090408
ZA2 20090127 ZLN266200J ZA2 NULL
ZZ1 20090127 ZMC131000J ZZ1 20090409
ZZ2 20090127 ZMA879000J ZA2 20090407
ZA1 20090126 ZMC485000J ZA1 20090409
ZA2 20090126 ZMB081000J ZZ2 20090409
ZZ1 20090126 ZKR884120H ZA2 NULL
ZZ2 20090126 ZMB788000J ZA2 20090409
ZA1 20090125 ZJX151310H ZA2 20081210
ZA2 20090125 ZJF836200H ZA2 NULL
ZZ1 20090125 ZMC073000J ZA1 20090409
ZZ2 20090125 ZLL444220J ZA2 NULL
ZA1 20090124 ZHS098200H ZA2 NULL
ZA2 20090124 ZLY151B00J ZNF NULL
ZZ1 20090124 ZMC189000J ZA1 20090408
ZZ2 20090124 ZMC015000J ZA2 20090409
ZA1 20090123 ZMB922000J ZA2 20090408
ZA2 20090123 ZMA050100J ZA2 20090408
ZZ1 20090123 ZLD816220J ZA2 NULL
ZZ2 20090123 ZLU398200J ZA2 NULL
ZA1 20090104 ZJN830200H ZA2 NULL
ZA2 20090104 ZLY149E00J ZNF NULL
ZZ1 20090104 ZLY149F00J ZNF NULL
ZZ2 20090104 ZMA041000J ZA2 20090403
ZA1 20090103 ZMA465000J ZA2 20090409
ZA2 20090103 ZMA871000J ZA2 20090402
ZZ1 20090103 ZLY147B00J ZNF NULL
ZZ2 20090103 ZLZ797300J ZA2 20090402
ZA1 20090102 ZLZ282000J ZA2 20090401
ZA2 20090102 ZMC445200J ZA1 20090409
ZZ1 20090102 ZMC147000J ZA1 20090409
ZZ2 20090102 ZMA475320J ZZ2 20090408
ZA1 20090101 ZMC260000J ZA1 20090409
ZA2 20090101 ZKA233200H ZA2 NULL
ZZ1 20090101 ZLZ883000J ZA2 20090408
ZZ2 20090101 ZMB064200J ZA1 20090409
ZA1 20081003 ZLZ387000J ZA2 20090403
ZA2 20081003 ZMB451200J ZA2 20090409
ZZ1 20081003 ZMC194000J ZA1 20090408
ZZ2 20081003 ZLY987200J ZA2 NULL
ZA1 20081002 ZLE831220J ZA2 NULL
milizi820 2009-04-07
  • 打赏
  • 举报
回复

不好意思,可能是我表达错了


这是我写的,但出错了。
SELECT (DATEDIFF(DAY,YMD,GETDATE()))-(COUNT(SELECT * FROM dbo.B WHERE (KYJT_YMD BETWEEN GETDATE() AND KNRYO_YMD )
FROM dbo.A
ChinaJiaBing 2009-04-07
  • 打赏
  • 举报
回复

select DATEDIFF(DAY,'2009/04/01',GETDATE())-
datediff(DAY,'2009/04/01','2009/04/03')
Zoezs 2009-04-07
  • 打赏
  • 举报
回复

select datediff(dd,'2009/04/01',getdate())-datediff(dd,'2009/04/02', '2009/04/03' )-1
playwarcraft 2009-04-07
  • 打赏
  • 举报
回复

--猜一個吧 ╮(╯▽╰)╭

declare @ymd datetime
set @ymd='2009-4-1'
select datediff(dd, YMD , getdate()) - isnull((select count(*) from B where YMD2 between A.TMD and getdate()),0)
from A
where YMD=@ymd


mugua604 2009-04-07
  • 打赏
  • 举报
回复


select datediff(dd,'2009/04/01',getdate())-datediff(dd,'2009/04/02', '2009/04/03' )-1


sdhdy 2009-04-07
  • 打赏
  • 举报
回复
select datediff(dd,'2009/04/01',getdate())-datediff(dd,'2009/04/02', '2009/04/03' )-1
/*

-----------
4

(所影响的行数为 1 行)
*/
milizi820 2009-04-07
  • 打赏
  • 举报
回复
没用啊 。结果还是只=DATEDIFF(DAY,YMD,GETDATE())相减,,后面的 没起作用。
sdhdy 2009-04-07
  • 打赏
  • 举报
回复
SELECT (DATEDIFF(DAY,YMD,GETDATE()))-(SELECT COUNT(1) FROM dbo.B WHERE (KYJT_YMD BETWEEN GETDATE() AND KNRYO_YMD ) )
FROM dbo.A

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧