【问题标题】:Name a column as the current date将列命名为当前日期
【发布时间】:2012-12-06 14:45:54
【问题描述】:

我正在使用 Teradata SQL 助手,我想创建一个名称为实际 当前日期 的列(例如 2012 年 12 月 19 日)。

【问题讨论】:

  • 你能用预期的列名更新你的问题吗?
  • 只是出于好奇:它有什么用途?顺便说一句,我在这里闻到了某种糟糕的设计决定,但我可能错了。我突然想到,每当为日期/日期范围创建单独的表或列时,最好通过一个设计合理的单个表来解决问题,如果数据量需要它,则应用分区。
  • 我需要每天输出一个表格,显示接下来 90 天的值流。我基本上希望能够旋转我已经存储的数据,但发现我无法在 teradata 中执行此操作,因此必须使用案例语句手动执行此操作,因为我会知道有限的大小我的数据透视表。

标签: sql date teradata


【解决方案1】:

如果您使用方括号将列名称命名为 [Current Date],则可以。但请远离保留关键字。

但是在重新阅读笔记时,我相信您指的是有一个名称,例如18-Dec-2012 作为列名?请说清楚。

【讨论】:

  • 是的,我指的是实际日期,即。 18/12/2012 或任何格式。
【解决方案2】:

我不知道teradata。但是下面的查询给了我SQL SERVER 2008中的愿望结果@

declare @sql nvarchar(128) = '
select 
(column_name) as [' + cast(CONVERT(DATE,GETDATE()) as nvarchar(32)) + ']
from (table_name)'
exec(@sql)

希望对你有帮助。

【讨论】:

  • 感谢@Prahalad,但我无法在 Teradata SQL 中声明变量,因此很遗憾这种方法行不通。
【解决方案3】:

根据您关于创建数据透视表的 cmets,您可能希望生成创建结果集所需的代码。我正在做类似的事情。看看我在this question 中发布的示例。你也许可以做类似的事情。

查询的结果集将包含用于“数据透视”表的代码。在我的例子中,这些列被命名为以“D”为前缀的日期(例如今天的 D20121217)。如果您希望它们作为实际日期,只需更改格式并用双引号将生成的列名括起来。运行后,只需将结果复制回查询窗口并执行即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多