3

我正在尝试执行以下操作:

  • 格式化GetDate()为只显示分钟
  • 格式化一varchar列以仅显示分钟
  • HH:MM:SSGetDate()VarChar列中减去当前时间

这就是我所拥有的

CONVERT(VARCHAR(5), GETDATE(), 108) - substring(convert(varchar(20), ColumnName, 9), 13, 5)

但我收到此错误,需要一些帮助:

操作数数据类型 varchar 对减法运算符无效。

4

2 回答 2

2

你想要的是日期部分(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>)

你真正想要完成什么?

于 2012-08-14T15:05:45.680 回答
0

我认为这就是你想要的:

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
于 2012-08-14T15:21:40.823 回答