日付と時刻を連結した文字列を作る。この文字列にしておくと、4D以外のDBに値を持っていくのが簡単。4Dの日付方は時刻を含まないため、レコードの更新順に並べたい場合など、DATE型とTIME型の2つのフィールドでソートしたりすることになって面倒。
使い方
$update:=JCL_str_Datemark (Current date;Current time)
引数
$1: DATE(日付)
$2: TIME(時刻)
$0: 文字列(17桁)
YYYYMMDDHHMMSSMMMというフォーマット。
YYYY: 年、4桁
MM: 月、2桁、1-12
DD: 日、2桁、1-31
HH: 時間、2桁、0-24
MM: 分、2桁、0-59
SS: 秒、2桁、0-59
MMM: ミリ秒、3桁、0-999
//JCL_str_Datemark
//$1: date; $2: time
//20100701 wat, 20121207 wat replace string
//じろ日付(デイトマーク)の文字列を作成する
C_DATE($1;$date)
$date:=$1
C_TIME($2;$time)
$time:=$2
C_TEXT($0;$datemarkStr;$dateStr;$timeStr)
//日付文字
$yearStr:=String(Year of($date);"####")
$monthStr:=String(Month of($date);"00")
$dayStr:=String(Day of($date);"00")
$dateStr:=$yearStr+$monthStr+$dayStr
//時刻
//$timeStr:=JCL_str_StripChar(String($time);":")
$timeStr:=String($time)
$timeStr:=Replace string($timeStr;":";"")
//所定文字列を作成
$datemarkStr:=$dateStr+$timeStr
$0:=$datemarkStr
データベースにはいろいろな製品がある。4Dの他にMySQL, PostgreSQL, Oracle, SQLite, Firebirdなどでデイトマークを使った実績がある。データ移行は問題ない。