文字列として表記された日付情報を、データベース上の日付フィールドと照合する必要があるため、方法を模索。すると、意外や意外...
[イミディエイトウィンドウでの実験] ?cdate("2005/01/02") #1/2/2005# ?cdate("2005/02/02") #2/2/2005# ?cdate("20050202") 実行時例外がスローされました : System.InvalidCastException - 文字列 "20050202" から型 'Date' へのキャストが有効ではありません。 ?cdate("2005/02/02") #2/2/2005# ?cdate("2005/02/01") #2/1/2005# ?cdate("平成12年1月2日") #1/2/2000# ?cdate("明治12年1月2日") #1/2/1879# ?cdate("明治12年1月②日") 実行時例外がスローされました : System.InvalidCastException - 文字列 "明治12年1月②日" から型 'Date' へのキャストが有効ではありません。 ?cdate("明治12年1月2日") #1/2/1879# ?cdate("M12年1月2日") #1/2/1879# ?cdate("S12年1月2日") #1/2/1937# ?cdate("s12年1月2日") #1/2/1937# ?cdate("s12/1/02") #1/2/1937#
なんと、全角半角交じりをはじめ、和暦での表示、和暦+スラッシュや和暦略称(H/S/T/M)にも対応している。ただ、「20050201」といった、システム屋が使いがちな連記形はだめなので、これはスラッシュを入れるなどして対応してやる必要がある。
おそらく、日本国内限定であれば、あまり深く考えることなく処理できそうだ。ただ、海外のことを考えると、月、日の順がばらばらなのでちょっとやっかい。