1

csv ファイルから bigquery テーブルにデータをアップロードしています。csv の各レコードには日時フィールド値が含まれており、これらの値を BigQuery テーブル フィールドに文字列として保存します。これらの日時フィールドに対して目的の範囲 (dateField > '2013-01-01 00:00:00' および dateField < '2013-01-10 00:00:00' など) を照会すると、間違った結果が得られます。

TimeStamp 関数を使用してみましたが、うまくいきませんでした。私を助けてください。

4

1 に答える 1

0

私は問題を整理しました:-

datetime(YYYY-MM-DD HH:MM:SS) 値で csv ファイルを生成するとき、C# を使用してコードのブロックを使用して、この値を POSIX 値 (UNIX タイムスタンプ) に変換しました:-

        protected string convertDateTimeToPOSIX(string strDateTime)
        {
            string strPOSIX = "";
            DateTime dtmDateTime = DateTime.Parse(strDateTime);
            DateTime dtmEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0);
            TimeSpan objTSpan = (dtmDateTime - dtmEpoch);
            strPOSIX = objTSpan.TotalSeconds.ToString();
            return strPOSIX + "000000";
        }

たとえば、strDateTime = "16-03-2011 23:51:17" の場合、その POSIX 値は "1300319477000000" になります

ファイルがアップロードされたら、ウェブ インターフェースを使用して Big Query にクエリを実行しました。

    SELECT Col1, Col2, Col3, FORMAT_UTC_USEC(POSIX_DateTime) DATE FROM [Dataset.tableName] 
    WHERE POSIX_DateTime > PARSE_UTC_USEC('2013-01-01 00:00:00') AND POSIX_DateTime < PARSE_UTC_USEC('2013-01-11 00:00:00')
    ORDER BY DATE
于 2013-01-11T12:22:57.770 に答える