SQL日期时间计算

3

我正试图完成以下操作:

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

这是我的代码:

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

但我遇到了这个错误,需要帮助:

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


你在这里想要实现什么目标? - Jim
2个回答

2

您需要的是datepart(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>)

你真正想要实现什么目标?


我正在尝试从SQL列中获取以下时间[2012-08-14 10:12:02.690],该时间是一个varchar类型的数据,并从当前时间中减去它以获得差异,仅以分钟为单位显示差异...但现在我发现如果分钟数大于60,则还需要显示小时数...有没有办法只计算总分钟数的差异? - user1572695

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接