【问题标题】:what is the SQL to display a number (200909) as Sep 2009 in Teradata 12在 Teradata 12 中将数字 (200909) 显示为 2009 年 9 月的 SQL 是什么
【发布时间】:2010-12-08 08:50:24
【问题描述】:

在 Teradata 12 中将数字 (200909) 显示为 2009 年 9 月的 SQL 是什么

【问题讨论】:

    标签: sql teradata


    【解决方案1】:

    Teradata 以以下方式将日期存储为整数:

    (year - 1900) * 10000 + (month * 100) + day
    

    因此,您将从年份中删除 1900 并添加一天以使该数字成为有效日期,然后转换为仅显示月份和年份的格式。

    SELECT CAST(CAST((200909 - 190000) * 100 + 1 AS DATE FORMAT 'm3by4') AS CHAR(8));
    

    【讨论】:

      【解决方案2】:

      我不熟悉 Teradata,但一般方法是:

      1. 将您的数字转换为可以转换为日期的字符串(即在末尾附加“01”以获得“20090901”)
      2. 将该字符串转换为日期类型
      3. 使用日期函数呈现“Sep 2009”(可能是月份函数和年份函数)

      祝你好运,Google 搜索可能会告诉您如何执行上述每个步骤。

      【讨论】:

        【解决方案3】:
        select cast(cast(('200909'(date, format 'y4mm')) as format 'm3by4') as char(10))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-01-20
          • 2012-02-15
          • 1970-01-01
          • 2019-11-23
          • 2011-04-19
          • 2020-06-12
          • 2011-10-06
          相关资源
          最近更新 更多