【发布时间】:2011-02-27 07:16:34
【问题描述】:
我在 SQL Server 中有一个 db 表,其中包含项目的开始日期。
在网络状态页面上,我想显示项目运行了多少天/周/月,单位取决于持续时间。因此,在 21 天以内我会显示天数,在 7 周以内我会显示数周,否则会显示已完成的月数。所以我得到了天、周和月的值,然后可以使用一些代码来决定显示哪一个。
假设项目于 2010 年 12 月 30 日开始,我今天(2011 年 2 月 27 日)正在检查。
select datediff(d,'30 Dec 2010',getdate()) as days,
datediff(wk,'30 Dec 2010',getdate()) as weeks ,
datediff(m,'30 Dec 2010',getdate())as months
生产
days: 59 weeks: 9 months: 2
但实际上差值是整整 8 周,并且会进行一些舍入。
我也尝试在 ASP 中执行此操作,获取开始日期,然后执行 datediff(),但效果并不好。
有没有更好的办法?
谢谢
【问题讨论】:
标签: sql-server tsql