我正在尝试执行以下操作:
- 格式化
GetDate()
为只显示分钟 - 格式化一
varchar
列以仅显示分钟 HH:MM:SS
从GetDate()
和VarChar
列中减去当前时间
这就是我所拥有的
CONVERT(VARCHAR(5), GETDATE(), 108) - substring(convert(varchar(20), ColumnName, 9), 13, 5)
但我收到此错误,需要一些帮助:
操作数数据类型 varchar 对减法运算符无效。
我正在尝试执行以下操作:
GetDate()
为只显示分钟varchar
列以仅显示分钟HH:MM:SS
从GetDate()
和VarChar
列中减去当前时间这就是我所拥有的
CONVERT(VARCHAR(5), GETDATE(), 108) - substring(convert(varchar(20), ColumnName, 9), 13, 5)
但我收到此错误,需要一些帮助:
操作数数据类型 varchar 对减法运算符无效。
你想要的是日期部分(mi)。
要获取 getdate() 的分钟数:
select datepart(mi, getdate())
从日期时间中减去分钟数:
select dateadd(mi, - <minutes>, <datevalue>)
要从 getdate() 中删除时间,只需转换为日期(在 SQL Server 的更新版本中):
select cast(getdate() as date)
要以分钟为单位获得差异,请使用 datediff:
select datediff(mi, <datestart>, <dateend>)
你真正想要完成什么?
我认为这就是你想要的:
declare @str varchar(30)
set @str = '2012-08-14 10:12:02.690'
select datediff(minute, cast(@str as datetime), getdate())
结果getdate() = '2012-08-14 11:21:10.250'
是总分钟数甚至超过 60 分钟:
69