関数−変換: 日付型と文字型の変換:DStr,DVal

日付型項目は、Magic内部では数値という扱いになります。
西暦1年1月1日からの累積日数を数値として持っています。
これを、書式に応じて日付として表示しているわけです。

但し、累積日数として持っているのはMagic内部のメモリ上での扱いであり、データベース内の値としては、必ずしも累積日数というわけではありませんし、数値項目というわけでもありません。

いずれにせよ、Magic内の式で使うときは文字列としては扱えません。
従って、数値型と文字型の変換に、StrValという関数を使ったように、日付型と文字型との間にも変換関数があります。
日付型を文字型にするのがDStr、文字型を日付型にするのがDValです。

例えば、受注一覧をCSVファイルに出力するときに、ファイル名に日付を付加したいときには、DStrという関数を使って、日付型を文字型に変換しなければなりません。
 NG:'受注一覧_' & Date() & '.CSV'
 OK:'受注一覧_' & DStr(Date(),'YYYYMMDD') & '.CSV'

<使い方>
DStr(日付項目 , '書式')・・・戻り値:書式に応じた文字型項目
DVal(文字項目 , '書式')・・・戻り値:日付型項目

<例>
1) 本日が、2010年12月31日の場合。
DStr(Date(),'YYYY/MM/DD') = 2010/12/31
DStr(Date(),'JJJJYY年MM月DD日') = 平成22年12月31日

2) 文字型項目Aの値が「2011/12/25」の場合。
DVal(A,'YYYYMMDD') = 2011/12/25

DValでは、上記の例で「2011」だけを与えると、「2011/01/01」というようになります。
つまり、省略された部分には1月とか1日を初期値として補って、可能な限り日付に変換しようとしているようです。
しかし、不確定要素は排除して、年月日を与えるのが良いと思います。