JCL_str_Datemark

日付と時刻を連結した文字列を作る。この文字列にしておくと、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などでデイトマークを使った実績がある。データ移行は問題ない。