我试图在别名中调用访问函数。但这是不可能的,它需要它作为文字。有没有办法把今天的日期放在别名中? AS Date()显然不起作用。
感谢
对于那些想知道导出的电子表格需要今天的日期+“交付”作为列名,即6 / 12DeliveryDate的人。
答案 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()
函数并附加文字。