| 2016/06/08(Wed) 15:04:37 編集(投稿者) 2016/06/08(Wed) 14:26:23 編集(投稿者) 2016/06/08(Wed) 14:17:38 編集(投稿者)
> 文字列型で20160608と日付を意味するデータが入っているとします。 > このデータを日時型(2016年6月8日と)に変換させるにはどうすればよいでしょうか。 > OS:Windows7 > 桐:Ver10
[文字列型]という項目に 20160608 という文字列が入っているとします。
このままでは、年月日の区切りがないので区切り文字を挿入します。
#sstr([文字列型], 1, 4 ) + "-" + #sstr([文字列型], 5, 2 ) + "-" + #sstr([文字列型], 7, 2 ) ※#sstr は #部分列 と同じです。
これは 2016-06-08 になります。※日付文字列と言います。
日付文字列を #日時値 という関数で括れば計算式の出来上がりです。
#日時値( #sstr([文字列型],1,4) + "-" + #sstr([文字列型],5,2) + "-" + #sstr([文字列型],7,2) )
<参考>
#日時値( str ) -------------------------------------------------------------------------------- 日時文字列 str を、日時値に変換します
サンプル
日付文字列から 7日後の日付文字列を求めます。 #日付( #日時値( "2015/4/21" ) + i"d7" , 1 ) → 2015-04-28 ノート ・str に日時値を指定すると、引数の値をそのまま返します。
・変換後の値が、日時型の範囲外になる場合、年月日の範囲外の部分が 1 になり、時分秒の範囲外の部分が 0 になります。
・「mm/dd/yyyy」と「dd/mm/yyyy」の形式で、日時文字列を指定することはできません。
・#日時値 だけを記述すると、現在の日時値を取り出します。
・外部データベースの表からデータを取り出すときは、ODBC 関数の CONVERT( val , SQL_TIMESTAMP ) と同じ計算結果になります。
|