2

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

谢谢

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

4

5 回答 5

1

我认为您只是在倒退。为什么不只是别名日期的输出?我看不到好处...这可能是不允许这样做的原因

Date() AS Today
于 2013-06-12T17:01:17.453 回答
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)
于 2013-06-12T17:06:17.670 回答
0

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

于 2013-06-12T17:31:15.877 回答
0

您不能使用函数创建列别名(也称为替换列名)。别名必须在查询中“硬编码”。

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

于 2013-06-12T17:13:03.853 回答
0

您必须使用动态查询添加列别名,在该查询中调用date()函数并附加文本。

于 2013-06-12T18:03:46.767 回答