(現在 過去ログ93 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■13752 / inTopicNo.1)  日時データについて
  
□投稿者/ いぶけん -(2023/04/27(Thu) 16:05:16)
    桐10sです

    csvで読み込んだ下記のような日時データがあります。
    読み込んだ西暦年は省略されていますが、基本的に現在年であって欲しいです。

    1 1/ 1 11: 0:38
    2 1/ 7 17:37:12
    3 1/ 9 9:20:59
    4 1/ 9 9:33:47
    5 1/10 9:57: 6
    6 1/10 13:40: 3
    7 1/12 13: 9:49
    8 1/13 15:34:26
    9 1/14 18:32:37

    csv読み込み時は、文字列型
    これを日時型に変換すると、不思議なことに
    1-4までは2001年
    5-9までは2023年になります。


    それで、読み込んだ「月日」に「西暦年」を#連結で繋げうまくいったと思ったのですが、
    年月で集計を取りたく、文字列型である「年月日」を日時型に変更しました。

    集計がうまくいかず色々調べて見ました。
    #年 と #月 で切り取ってみたところ、2月も含む全てが1989年1月になっていました。

    考えられる理由はなんでしょうか?
    よろしくお願いします。

引用返信 [メール受信/OFF] 削除キー/
■13753 / inTopicNo.2)  Re[1]: 日時データについて
□投稿者/ ONnoji -(2023/04/27(Thu) 17:23:55)
    2023/04/29(Sat) 10:25:48 編集(投稿者)

    No13752に返信(いぶけんさんの記事)
    > 桐10sです
    >
    > csvで読み込んだ下記のような日時データがあります。
    > 読み込んだ西暦年は省略されていますが、基本的に現在年であって欲しいです。
    >
    > 1 1/ 1 11: 0:38
    > 2 1/ 7 17:37:12
    > 3 1/ 9 9:20:59
    > 4 1/ 9 9:33:47
    > 5 1/10 9:57: 6
    > 6 1/10 13:40: 3
    > 7 1/12 13: 9:49
    > 8 1/13 15:34:26
    > 9 1/14 18:32:37
    >
    > csv読み込み時は、文字列型
    > これを日時型に変換すると、不思議なことに
    > 1-4までは2001年
    > 5-9までは2023年になります。
    >
    > 考えられる理由はなんでしょうか?

    年を省略した日付文字列は mm/dd hh:mm:ss と解釈するのが普通ですね。

    文字列       桐の解釈                             日時型への変換結果
    1/ 1 11: 0:38 → 1/111 という日付(mm/dd)は不正なので 2000 + 1/ 1/11 0: 0:38 → 2001/ 1/11 0: 0:38
    1/ 7 17:37:12 → 1/717 という日付(mm/dd)は不正なので 2000 + 1/ 7/17 0:37:12 → 2001/ 7/17 0:37:12
    1/ 9 9:20:59  → 1/99 という日付(mm/dd)は不正なので 2000 + 1/ 9/ 9 0:20:59 → 2001/ 9/ 9 0:20:59
    1/ 9 9:33:47  → 1/99 という日付(mm/dd)は不正なので 2000 + 1/ 9/ 9 0:33:47 → 2001/ 9/ 9 0:33:47

    1/10 9:57: 6  → 1/10 という日付(mm/dd)は適正なので当年(2023)追加 → 2023/ 1/10 9:57: 6
    1/10 13:40: 3 → 1/10 という日付(mm/dd)は適正なので当年(2023)追加 → 2023/ 1/10 13:40: 3
    1/12 13: 9:49 → 1/12 という日付(mm/dd)は適正なので当年(2023)追加 → 2023/ 1/12 13: 9:49
    1/13 15:34:26 → 1/13 という日付(mm/dd)は適正なので当年(2023)追加 → 2023/ 1/13 15:34:26
    1/14 18:32:37 → 1/14 という日付(mm/dd)は適正なので当年(2023)追加 → 2023/ 1/14 18:32:37

    ↑上のように、1/111,1/717,1/99といった月日(mm/dd)は存在しないので、yyyy を2001と解釈したのだと思いますよ。

    いずれにしても、日時型というのは yyyy/mm/dd hh:mm:ss というのが基本なので、

    年を省略した日付文字列を無理に変換させると期待通りの結果が得られないということだと思いますよ。
    ・・・・・・・・・・・・・・・・・・・・

    p.s.

    正しく変換できない日付文字列のmm/ddのddをゼロ埋め(ゼロ詰め)すれば、ちゃんと変換できるようですよ!

    1/ 1 11: 0:38 → 1/01 11: 0:38
    1/ 7 17:37:12 → 1/07 17:37:12
    1/ 9 9:20:59  → 1/09 9:20:59
    1/ 9 9:33:47  → 1/09 9:33:47
               ↑
      mm/ddのddをゼロ埋め(ゼロ詰め)する

    p.p.s.

    > 集計がうまくいかず色々調べて見ました。
     ・・・・・・・・・
      ↑
     具体的な情報が不足していますので第三者には理解不能です。

    > #年 と #月 で切り取ってみたところ、2月も含む全てが1989年1月になっていました。
                             ・・・・・・・・・・・・・・・・
                              ↑
    これに関しては想像力を最大にしてみましたが、見当がまったく付きませんです。



引用返信 [メール受信/OFF] 削除キー/
■13754 / inTopicNo.3)  Re[2]: 日時データについて
□投稿者/ いぶけん -(2023/04/27(Thu) 20:00:44)
    ONnojiさん

    早速のご回答ありがとうございました。

    とりあえずは月日をゼロ埋めして、mm/dd型にしてトライしてみます。
解決済み!
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -