可以把今天的日期作为别名吗?

时间:2013-06-12 16:59:20

标签: sql ms-access

我试图在别名中调用访问函数。但这是不可能的,它需要它作为文字。有没有办法把今天的日期放在别名中? AS Date()显然不起作用。

感谢

对于那些想知道导出的电子表格需要今天的日期+“交付”作为列名,即6 / 12DeliveryDate的人。

5 个答案:

答案 0 :(得分:1)

我认为你只是在考虑这个问题。为什么不只是别名输出日期?我看不出有什么好处......这可能是为什么不允许的原因

Date() AS Today

答案 1 :(得分:1)

“AS”关键字用于为特定列指定名称。例如:

SELECT Date() As Today

表示在标有Today的列中返回当前日期。

SELECT '2013-06-12' as Date()

没有任何意义......除非你试图用今天的日期命名列,同样听起来也是如此。我能想到实现这一目标的唯一方法是使用某种类型的动态sql,它将今天的日期作为列名称传递。这样查询将会读取:

SELECT 'asdf' as [2013-06-12]

我不完全确定如何在MS Access中构建它。在sql server中,它将类似于:

declare @dateName varchar(20) 
declare @sql varchar(1000)
set @dateName = convert(varchar(20), getdate(), 105)

set @sql = 'SELECT Col1 as [' + @dateName + ']'

exec(@sql)

答案 2 :(得分:0)

您无法使用函数创建列别名(a.k.a.替换列名称)。别名必须在查询中“硬编码”。

为什么您希望列具有当前日期?您的查询数据的任何消费者都将很难处理始终更改的列名称。你将无法将它绑定到任何东西。报告和表格不起作用。相反,将列名称设置为TodayValue,然后在表示层中,只显示今天的日期作为标签(在表单或报表中,您必须使用文本框,但可以将其设置为看起来像标签)。

答案 3 :(得分:0)

如果最终报告应该有,那么在报告上执行此操作。保留查询数据(因为这与数据无关,以及与报告生成有关),并在报告的标题中执行now()Delivery Date的连接。

答案 4 :(得分:0)

您必须使用dynamic query添加列别名,您可以在其中调用date()函数并附加文字。