エイリアスでアクセス関数を呼び出そうとしています。しかし、それは不可能です。それはリテラルとして受け取ります。今日の日付をエイリアスに入れる方法はありますか? AS Date() は明らかに機能しません。
ありがとう
エクスポートされたスプレッドシートには、列名として今日の日付+「配達」、つまり 6/12DeliveryDate が必要です。
「AS」キーワードは、特定の列に名前を付けるために存在します。例えば:
SELECT Date() As Today
というラベルの付いた列に現在の日付を返すことを意味しますToday
。
SELECT '2013-06-12' as Date()
意味がありません...今日の日付で列に名前を付けようとしている場合を除き、同様に聞こえません。これを達成するために考えられる唯一の方法は、今日の日付を列名として渡すある種の動的SQLを使用することです。クエリは次のようになります。
SELECT 'asdf' as [2013-06-12]
MS Accessでそれを構築する方法が完全にはわかりません。SQL サーバーでは、次のようになります。
declare @dateName varchar(20)
declare @sql varchar(1000)
set @dateName = convert(varchar(20), getdate(), 105)
set @sql = 'SELECT Col1 as [' + @dateName + ']'
exec(@sql)
あなたはこれを後ろ向きに考えているだけだと思います。日付の出力にエイリアスを付けないのはなぜですか? メリットが見当たらない...おそらくそれが許可されていない理由です
Date() AS Today
関数を使用して列のエイリアス (別名、置換列名) を作成することはできません。エイリアスは、クエリで「ハードコード」する必要があります。
とにかく、なぜ列に現在の日付が必要なのですか? クエリのデータの消費者は、常に変化する列名に対処するのに苦労します。あなたはそれを何にもバインドすることができなくなります。レポートとフォームは機能しません。代わりに、列名を のようTodayValue
にしてから、プレゼンテーション レイヤーで今日の日付をラベルとして表示します (フォームまたはレポートでは、テキスト ボックスを使用する必要がありますが、ラベルのようにスタイルを設定できます)。
関数を呼び出してテキストを追加する動的クエリを使用して、列のエイリアスを追加する必要があります。date()