在 DB2 中获取没有时间戳的日期

Posted

技术标签:

【中文标题】在 DB2 中获取没有时间戳的日期【英文标题】:Obtain date without timestamp in DB2 【发布时间】:2013-08-09 20:29:17 【问题描述】:

如果我错过了任何文档/解决方案,请原谅我的无知。但是我在网上搜索并找不到答案。

我有一个简单的问题。在 DB2 表中,我有一列日期类型和格式为 04/25/2013 12:00:00AM 的数据。当我查询 DB2 数据库时,我只想获取日期而不是时间戳,即获取“04/25/2013”​​而不是“04/25/2013 12:00:00AM”。我尝试了 DATE(column name) 并返回了包括时间戳在内的完整值。

【问题讨论】:

您正在使用哪个平台版本的 DB2(IBM i、LUW 或 z/OS),以及哪个版本?你有什么类型的会话给你这个结果? 同意,DATE() 应该会给您预期的结果。此外,DB2 中的DATE 类型中没有时间值,这通常意味着它是TIMESTAMP。 (附带说明,大多数 RDBMS 不以某种格式存储日期/时间值 - 它们使用单​​独的内部表示,在显示时进行转换。) 请提供表格定义!我不敢相信您的专栏是 DATE 类型的。或者您的 SELECT 正在将结果转换为时间戳! 它的 IBM z/OS DB2。该列是 Date 类型,我不确定为什么甚至 date(column name) 方法也会返回日期和时间。我读了一点,我知道不知何故我得到了一个时间戳 【参考方案1】:

这看起来像 TIMESTAMP 而不是 DATE 列。如果它确实是一个 TIMESTAMP 列,试试这个:

select varchar_format(current timestamp, 'MM/DD/YYYY') from sysibm.sysdummy1 ;

只需将上面示例中的当前时间戳替换为您的列,并将 sysibm.sysdummy1 替换为您的表。

关于 varchar_format 的好处是它可以让您轻松地格式化时间戳。只需将 'MM/DD/YYYY' 部分更改为 'YYYY.MM.DD' 即可获得类似于 '2017.08.18' 的格式。

【讨论】:

以上是关于在 DB2 中获取没有时间戳的日期的主要内容,如果未能解决你的问题,请参考以下文章

ion-datetime:如何获取没有时间戳的日期值?

如何从 DB2 中的两个时间戳中获取差异?

需要在 DB2 中使用基于时间戳的 group by 优化慢查询

带时间戳的 DB2 变量

没有时间戳的 HQL 中的日期比较

在熊猫中获取与给定日期时间最接近的时间戳的行的有效方法