テーブルに
20121201aaa
20121203bbb
と言うデータがあるのですが
これをクエリで
あ2012/12/01(土)
あ2012/12/03(月)
に変えるにはどうすればいいでしょうか
数値の後ろの文字はいろんなパターンがあるので置換じゃ追いつきません。
SELECT Format(Left([テーブル1]![test],8),"yyyy/mm/dd(aaa)") AS 日
FROM テーブル1;
にすると#エラーになってしまいます。
SELECT Format(CDate(Left([テーブル1]![test],8)),"yyyy/mm/dd(aaa)") AS 日
FROM テーブル1;
これでもダメでした・・・
No.5ベストアンサー
- 回答日時:
先頭8文字を対象とする。
かつ、先頭8文字が日付と解釈できる。
の大前提がありますが(20121232 などの例外を非考慮)
なら
最終的に、 [日]を日付時刻型としたい場合のSQL文は
SELECT CDate(Format(Left([test],8),"@@@@\/@@\/@@")) AS 日
FROM テーブル1;
として右クリックで現れるプロパティシートの書式で、yyyy/mm/dd(aaa)
でしょうし
[日]を単なるテキスト型なら、さらにFormatして
SELECT Format(CDate(Format(Left([test],8),"@@@@\/@@\/@@")),"yyyy/mm/dd(aaa)") AS 日
FROM テーブル1;
でプロパティシートの書式欄は空白にします。
前者は日付時刻型なので右詰めになりますし、後者はテキスト型なので左詰めになります。
"あ"と頭に加えるのなら
テキスト型でしかできないので
SELECT 'あ' & Format(CDate(Format(Left([test],8),"@@@@\/@@\/@@")),"yyyy/mm/dd(aaa)") AS 日
FROM テーブル1;
でしょうか。
Left で8文字とって
Format で日付時刻型と解釈できるようにして
CDate で日付時刻型に変換
Format で日付時刻型になっているデータに「曜日」も加えた書式に変換
それに、あ を付加
ということです。
No.4
- 回答日時:
SQL文の7-8行目が1連に見えますね。
Weekday([日付],1) AS 曜日番号, Choose([曜日番号],"日","月","火","水","木","金","土") AS 曜日,
訂正すると
Weekday([日付],1) AS 曜日番号,
Choose([曜日番号],"日","月","火","水","木","金","土") AS 曜日,
として、それぞれをクエリの列に納めて下さい。
No.2
- 回答日時:
ちょっと長めになりましたが、以下のSQL文をクエリのSQLビューに入れてみて下さい。
SELECT
[テーブル1].test,
Left([test],4) AS 年,
Mid([test],5,2) AS 月,
Mid([test],7,2) AS 日,
DateSerial([年],[月],[日]) AS 日付,
Weekday([日付],1) AS 曜日番号, Choose([曜日番号],"日","月","火","水","木","金","土") AS 曜日,
"あ" & [年] & "/" & [月] & [日] & "(" & [曜日] & ")" AS 編集文字列
FROM テーブル1;
----------------
まずクエリ内で先に作ったフィールドに名前を与えて、あとフィールドの関数に利用するのがコツです。
そうして、Weekday関数で曜日番号を求めて、Choose関数で漢字の曜日を求めます。
また、右端のaaaやbbbも区切って使いたければ、
Mid([test],5,Len[test]) AS 右端文字列
といったフィールドを用意して、最後の編集文字列の中に組み込みます。
No.1
- 回答日時:
「必ず先頭8桁は日付になりうる数字である」という前提で。
わかりやすいよう改行いれますが、一行でペーストしてください。
SELECT Format(
cdate(
mid([テーブル1]![test], 1, 4)& "/"
mid([テーブル1]![test], 5, 2)& "/"
mid([テーブル1]![test], 7, 2)
)
, "yyyy/mm/dd(aaa)") AS 日
FROM テーブル1
;
「必ず先頭8桁は日付になりうる数字である」は絶対そうなります。
一行でペーストって
SELECT Format(cdate(mid([テーブル1]![test], 1, 4)& "/"mid([テーブル1]![test], 5, 2)& "/"mid([テーブル1]![test], 7, 2)), "yyyy/mm/dd(aaa)") AS 日 FROM テーブル1
こういうことでしょうか?
midの部分でエラーになってしまいました・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) テーブルを配列に入れて、元のテーブルの行番号を取得したい 1 2022/08/16 20:15
- MySQL SQLについて質問です。 SELECT TO_CHAR(TO_DATE('90-10-08.'YY- 4 2022/05/13 20:55
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Access(アクセス) エクセルのVBAについて教えてください。 4 2023/01/21 10:21
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Visual Basic(VBA) VBA。複数のChangeイベントをまとめる方法 2 2022/03/31 12:03
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Excel→Accessへの日付データの...
-
Excleピボットでデータのない部...
-
Accessの日付時刻型から日付、...
-
【エクセル】指定した日付に一...
-
【Accessで困っています...
-
ACCESSの空白をカウントする
-
アクセスで月単位の抽出
-
BCPでCSV内の文字列をテーブル...
-
ビュー定義をプログラムで動的...
-
VBA 別シートの同じ日付の欄に...
-
日付/時刻型フィールドで時刻デ...
-
指定日付を起点にして最新日付...
-
SQL Server2005のクエリで「今...
-
Accessで日付の比較がうまくい...
-
前のレコードの合計に現レコー...
-
【vba】日付の形式が勝手に変わ...
-
Accessのデータ型の日付/時刻型...
-
Accessでnow()で取り出した日付...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
Accessの日付時刻型から日付、...
-
VBA 別シートの同じ日付の欄に...
-
アクセスで月単位の抽出
-
BCPでCSV内の文字列をテーブル...
-
Excel→Accessへの日付データの...
-
指定日付を起点にして最新日付...
-
【エクセル】指定した日付に一...
-
アクセス:既定値に土日含まず...
-
【Accessで困っています...
-
Access クエリで、レコードの無...
-
Accessで日付の比較がうまくい...
-
【vba】日付の形式が勝手に変わ...
-
前のレコードの合計に現レコー...
-
ACCESSの空白をカウントする
-
アクセス97のVBAで日付項目をヌ...
-
エクセル-過去6カ月分の合計を...
-
access 横型カレンダーを使用し...
おすすめ情報