如何过滤Sql类型的字符串

时间:2012-07-09 15:55:55

标签: sql

我是SQL的新手,我知道如何在带有十进制类型的sql中使用过滤器,但这次我使用的是字符串类型。

  • 我需要过滤超过" 3小时"或" 180分钟"
  • 我能够让它过滤超过" 3小时"
  • 但无法过滤超过180分钟的任何内容

这是此表输出的屏幕截图。

enter image description here

这是SQL select语句,它正在运行

SELECT EVENTID,
       STARTDATETIME,
       F_NAME,
       DURATIONHM,
       NUM_PEOPLE

  FROM EVENT_FACT
  where DURATIONHM > '3 hrs'

1 个答案:

答案 0 :(得分:1)

您无法以您希望的方式编写查询。您需要以分钟为单位存储持续时间,然后使用:

where duration >= 3*60

您可以通过一系列努力创建一个解析字符串以获取分钟数的视图。在某些数据库中,您还可以将这样的字符串转换为时间或间隔数据类型,这将使​​您更进一步。

但是,您发现的是将持续时间存储为字符串不符合您对该字段的查询要求。 (如果你试图按持续时间排序,你会发现同样的事情。)