【问题标题】:Need help in teradata在 teradata 方面需要帮助
【发布时间】:2017-11-02 17:13:06
【问题描述】:

在其中一个表中,我有一个时间列,其中的数据是这样的: 01:21:00.000000 所有记录。

我想检索如下所示的数据。

01:21:00 在 teradata 中。

请指教。我是 teradata 新手,不知道如何实现这一目标

【问题讨论】:

  • 你看过 CAST() 函数吗?看来您的数据是 TIME(6),而您想要 TIME(0)。

标签: teradata


【解决方案1】:

如果您的列是时间戳,那么我们可以使用 Timestamp(0) 为 YYYY-MM-DDbHH:MI:SS 而 Timestamp(6) 为 YYYY-MM-DDbHH:MI:SS.ssssss(额外毫秒)。

如果您的专栏只是时间,那么我们可以使用“CAST”。

从;中选择演员(作为时间(0))

【讨论】:

  • 不起作用,因为标准 SQL 不允许降低精度。
【解决方案2】:

我不知道在 Teradata 中降低时间(或时间戳)精度的合理方法。假设您的列是时间(6),您不能只将其转换为时间(0)。您收到 DateTime 字段溢出错误。

我通过将其转换为字符字段然后返回到 time(0) 来做到这一点:

select *
from
<your table>
where
cast(cast <your column> as varchar(8)) as time(0) = '01:21:00'

【讨论】:

  • 啊。旧的双重 CAST()... :)
  • 确实很傻,但这是我知道的唯一方法。
猜你喜欢
  • 2011-01-27
  • 2014-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多