【问题标题】:Time calculation for time value entered in SQL在 SQL 中输入的时间值的时间计算
【发布时间】:2014-04-10 02:48:33
【问题描述】:

我需要帮助来计算我的时差。我在论坛上搜索,但不是我需要的。这是我正在使用的代码:-

    (convert(varchar(10),([RT_Phase_Time])-(convert(time,'00:30:00'))))

所以我[RT_Phase_Time] 是这种格式'hh:mm:ss'。我正在尝试区分([RT_Phase_Time] - '00:30:00')。请帮忙!

【问题讨论】:

  • 你用的是哪个,mysql还是sql-server?

标签: sql-server-2008 tsql reporting-services


【解决方案1】:

在 MySQL 中,您可以使用 TIMEDIFF() 轻松做到这一点。

TIMEDIFF('22:00:00','00:30:00');
-- Returns '21:30:00' 

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timediff

【讨论】:

  • 我试过Timediff,它说TIMEDIFF不是内置函数
  • 请确保 TIMEDIFF 和括号之间没有空格。 TIMEDIFF(不起作用。
  • 还是同样的问题。我正在使用这样的案例陈述。案例 RT_Phase_Time
  • 你运行的是什么 mysql 版本?使用 SQL 检查:SELECT VERSION()。此功能是在 MySQL 4.1.1 上添加的,我怀疑您使用的是旧版本。
  • 我觉得有没有其他办法?
【解决方案2】:

尝试这样的事情,检查 BOL 中的 datediff 以转换为其他值:

declare @rt_phase_time time
set @rt_phase_time = '12:30:30'

select datediff(ss,cast('00:30:00' as time),@rt_phase_time)

【讨论】:

  • 我的 phase_time 被声明为 varchar。我需要将其转换为时间 (hh:mm:ss),然后减去我将在我的 sql 中硬编码的时间。
猜你喜欢
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 2020-06-30
  • 2020-10-07
相关资源
最近更新 更多