SQL语句中对于记录输入当时的时间和进行查询的时间对比(sql server 2005)

来源:百度知道 编辑:UC知道 时间:2024/05/31 21:31:28
select building 'Time Entered' datediff(hh,building,getdate()) 'Hours Ago' from tb_house

这段话要查找的是对于building字段而言,该命令要查找出building中记录的输入时间以及找出与当前时间相比此记录已经输入的几个小时。
问题是输入后系统提示:消息 102,级别 15,状态 1,第 1 行
'datediff' 附近有语法错误。
楼下你的这句命令:SELECT building AS 'Time Entered', DATEDIFF(hh, building, GETDATE()) AS 'Hours Ago'FROM tb_house
输入后系统提示:
消息 241,级别 16,状态 1,第 2 行
从字符串向 datetime 转换时失败。

2楼我在原来自己的命令后面+个逗号也不行呀,也一样是 datetime转换时失败

select building 'Time Entered',
datediff(hh,cast(building as datetime),getdate()) 'Hours Ago'
from tb_house

就是我后来跟你说的那样加字段去实现,这样直接在字段上查是不行的。

select building,'Time Entered '+convert(varchar(30),datediff(hh,building,getdate()))+' Hours Ago' from tb_house

--如果作为一整条字符串显示,则:
select convert(varchar(20),building,120)+' Time Entered '+convert(varchar(30),datediff(hh,building,getdate()))+' Hours Ago' from tb_house

问题在于你的写法不标准,所以不容易分辨出问题在哪里:

SELECT building AS 'Time Entered', DATEDIFF(hh, building, GETDATE()) AS 'Hours Ago'
FROM tb_house。

楼主,你 building 字段是什么格式的?发出来看看先