表Promotion的字段和值如下:
id startTime
1 2012-08-20 15:23:10
2 2012-08-15 09:12:10
3 2012-08-11 22:30:00
我想在显示时间时,距离此刻如果大于等于一天的就显示天数,如果不足一天的就显示小时和分钟数,比如这个例查出的结果就显示为:
9天
4天
10小时
这个语句怎么写?
id startTime
1 2012-08-20 15:23:10
2 2012-08-15 09:12:10
3 2012-08-11 22:30:00
我想在显示时间时,距离此刻如果大于等于一天的就显示天数,如果不足一天的就显示小时和分钟数,比如这个例查出的结果就显示为:
9天
4天
10小时
这个语句怎么写?
解决方案 »
- 列中记录转为行记录的问题
- 怎么样用T-SQL实现更改数据库内所有表的时间字段的默认值为getdate()?
- 聚合 应该如何处理
- 这个SQL搞得我头都昏了,兄弟们帮帮我。(100分)
- SQL存储过程优化............
- 客户端连接服务端问题
- 转换 varchar 值 '13811110001' 时溢出了整数列。超过了其中最大的整数值。
- 我安装动网论坛出现Microsoft OLE DB Provider for SQL Server 错误 '80004005' ,哪位兄弟帮我解答解答!?
- 查询pubs 数据库下面有哪些表,用什么命令?
- 在查询分析器中执行程序
- 请问这样的SQL Server查询可以实现吗?
- SQL SERVER做项目时,使用外键好吗?
CASE WHEN DATEDIFF(hh,GETDATE(),startTime)>24 THEN DATEDIFF(dd,GETDATE(),startTime)
WHEN DATEDIFF(n,GETDATE(),startTime)>60 THEN DATEDIFF(hh,GETDATE(),startTime)
WHEN DATEDIFF(s,GETDATE(),startTime)>60 THEN DATEDIFF(n,GETDATE(),startTime)
END AS [显示时间]
FROM Promotion
CASE WHEN DATEDIFF(hh,GETDATE(),startTime)>24 THEN RTRIM(DATEDIFF(dd,GETDATE(),startTime))+'天'
WHEN DATEDIFF(n,GETDATE(),startTime)>60 THEN RTRIM(DATEDIFF(hh,GETDATE(),startTime))+'小时'
WHEN DATEDIFF(s,GETDATE(),startTime)>60 THEN RTRIM(DATEDIFF(n,GETDATE(),startTime))+'分钟'
END AS [显示时间]
FROM Promotion少了单位
SELECT
CASE WHEN DATEDIFF(s,GETDATE(),startTime)>=86400 THEN RTRIM(DATEDIFF(dd,GETDATE(),startTime))+'天'
WHEN DATEDIFF(s,GETDATE(),startTime)>=3600 THEN RTRIM(DATEDIFF(hh,GETDATE(),startTime))+'小时'
WHEN DATEDIFF(s,GETDATE(),startTime)>=60 THEN RTRIM(DATEDIFF(n,GETDATE(),startTime))+'分钟'
END AS [显示时间]
FROM Promotion
楼主按自己情况更改