過去の桐井戸端BBS (桐ver.9)
23615 日時型データの時間を文字列に置き換えたい HERB 2003/12/01-17:53
日時型項目、更新日:2003/ 6/16 11: 7

データ保存時更新時間を含めて保存、このデータの時間のみを文字列で置き換えたい上のデータの場合でいうと。

0詰めで:"1107"としたい、以下、計算式だと。

#文字列(#INT(#時間数値(#日時時刻([更新日]),1)),2)+#文字列(#INT(#時間数値(#日時時刻([更新日]),2)),2)

"11667"となってしまいます。

以下、計算式で目的のことはできたのですが。

#部分列(#文字列(#数値(#文字列(#日時時刻([更新日])))),1,4)

"1107"となりました。

環境設定変更した場合でも影響しないもっとスマートな計算式はないでしょうか。

よろしくお願いします。

23619 Re:日時型データの時間を文字列に置き換える アックン 2003/12/01-18:33
記事番号23615へのコメント
HERBさん、こんばんは。これでいけるかどうか、試してください。

 #str( #int( #時間数値( #日時時刻( [更新日] ) , 2 ) /60 ) , 2 )
+#str( #mod( #時間数値( #日時時刻( [更新日] ) , 2 ) , 60 ) , 2 )

もっと簡単なのがあるかもしれませんけど、取りあえず。
23621 Re:日時型データの時間を文字列に置き換える アックン 2003/12/01-18:43
記事番号23615へのコメント
HERBさん>
>#部分列(#文字列(#数値(#文字列(#日時時刻([更新日])))),1,4)
>"1107"となりました。
 この式では、時刻が1桁のときに変換ミスが生じます。(^^;
23624 Re:日時型データの時間を文字列に置き換える うにん 2003/12/01-20:16
記事番号23615へのコメント

>日時型項目、更新日:2003/ 6/16 11: 7
>
>データ保存時更新時間を含めて保存、このデータの時間のみを文字
>列で置き換えたい上のデータの場合でいうと。
>
>0詰めで:"1107"としたい、以下、計算式だと。

#文字列(#時([更新日]),2)+#文字列(#分([更新日]),2)

23641 Re:日時型データの時間を文字列に置き換える ONnoji 2003/12/02-21:53
記事番号23615へのコメント
>環境設定変更した場合でも影響しないもっとスマートな計算式はな
>いでしょうか。

HERBさん、こんばんは。

既に、うにんさんがお書きになっていますが、

#str( #時( [更新日] ), 2 )+#str( #分( [更新日] ), 2 )

で、いいのではないでしょうか。

日時型のデータ型を文字列に変換するのなら、

#str( #年( 日時型データ ) )
#str( #月( 日時型データ ) )
#str( #日( 日時型データ ) )
#str( #時( 日時型データ ) )
#str( #分( 日時型データ ) )
#str( #秒( 日時型データ ) )

で、済むようですけれど???。

23698 Re:ご返事遅くなりました HERB 2003/12/04-14:57
記事番号23624へのコメント
HERBです。

アックンさん、うにんさん、ONnojiさんありがとうございました。

うにんさんの計算式を使わさせて頂きます、アックンさんのご指摘のとおりあの計算式では変換ミスが出ました。

業務で桐9-2004から採用されたEAN−128バーコードの印字する必要性に迫られ、
ユニークなデータになるよう時、分を文字列に置換含めようと考えた次第です。

お世話になりました、今後ともよろしくお願いします。

戻る