在 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 中获取没有时间戳的日期的主要内容,如果未能解决你的问题,请参考以下文章