Google bigquery 时间戳不一致导致BigQuery浏览器工具?

Google bigquery 时间戳不一致导致BigQuery浏览器工具?,google-bigquery,Google Bigquery,我试图在时间戳字段上查询一个表,但得到了一些奇怪的结果 例如,要查询带有时间戳的行,根据返回ff: SELECT timestamp FROM [MyTable] where timestamp > 1402913235 order by timestamp LIMIT 20; Results: -------- Row timestamp 1 2009-02-13 23:31:30 UTC 2 2009-02-13 23:31:30 UTC 3 2009-

我试图在时间戳字段上查询一个表,但得到了一些奇怪的结果

例如,要查询带有时间戳的行,根据返回ff:

SELECT timestamp FROM [MyTable]
where timestamp > 1402913235 
order by timestamp LIMIT 20;

Results:
--------
Row timestamp    
1   2009-02-13 23:31:30 UTC  
2   2009-02-13 23:31:30 UTC  
3   2009-02-13 23:31:30 UTC  
4   2009-02-13 23:31:30 UTC  
5   2009-02-13 23:31:35 UTC

Downloaded Raw CSV:
-------------------
timestamp
1.23456789E9
1.23456789E9
1.23456789E9
1.23456789E9
1.234567895E9
显然,前5个结果不大于
1402913235

使用相同表格的另一个示例:

SELECT timestamp FROM [MyTable]
order by timestamp desc LIMIT 20;

Results:
--------
Row timestamp    
1   46426-07-19 16:15:18 UTC     
2   46426-07-19 14:45:44 UTC     
3   46426-07-19 14:44:40 UTC     
4   46426-07-19 14:34:12 UTC     
5   46426-07-19 09:17:21 UTC

Downloaded Raw CSV:
-------------------
timestamp
1.4029131465180002E12
1.402913141144E12
1.40291314108E12
1.402913140452E12
1.402913121441E12
同样,根据epochconverter.com,第一个结果应该是
1.4029131465180002E12==1402913146518.0002==2014年6月16日10:05:46 GMT
,而不是
46426-07-19 16:15:18


发生了什么事?

可能减少了一千

见此:

SELECT USEC_TO_TIMESTAMP(1402913146518) as_usec, 
       MSEC_TO_TIMESTAMP(1402913146518) as_msec,
       SEC_TO_TIMESTAMP(1402913146518) as_sec

as_usec                  as_msec                    as_sec   
1970-01-17 05:41:53 UTC  2014-06-16 10:05:46 UTC    46426-07-19 16:15:18 UTC     
对于第一个问题,请记住在比较之前转换为时间戳:

SELECT 
  as_msec > (1402913146518+100) timestamp_more_than_number,
  as_msec > MSEC_TO_TIMESTAMP(1402913146518+100) timestamp_more_than_timestamp
FROM (SELECT MSEC_TO_TIMESTAMP(1402913146518) as_msec)

timestamp_more_than_number  timestamp_more_than_timestamp    
true                        false

可能会减少一千

见此:

SELECT USEC_TO_TIMESTAMP(1402913146518) as_usec, 
       MSEC_TO_TIMESTAMP(1402913146518) as_msec,
       SEC_TO_TIMESTAMP(1402913146518) as_sec

as_usec                  as_msec                    as_sec   
1970-01-17 05:41:53 UTC  2014-06-16 10:05:46 UTC    46426-07-19 16:15:18 UTC     
对于第一个问题,请记住在比较之前转换为时间戳:

SELECT 
  as_msec > (1402913146518+100) timestamp_more_than_number,
  as_msec > MSEC_TO_TIMESTAMP(1402913146518+100) timestamp_more_than_timestamp
FROM (SELECT MSEC_TO_TIMESTAMP(1402913146518) as_msec)

timestamp_more_than_number  timestamp_more_than_timestamp    
true                        false

你在使用Streak插件吗?有时是,但它被禁用。你在使用Streak插件吗?有时是,但它被禁用。谢谢。那么浏览器工具期望时间戳以秒为单位?我应该将所有时间戳数据存储为秒数?请参阅developers.google.com/bigquery/timestamp,了解作为时间戳导入列时可接受的格式。导入后,它们不是秒,也不是毫秒,而是时间戳-将它们与时间戳进行比较或将它们转换为您首选的表示形式。谢谢。那么浏览器工具期望时间戳以秒为单位?我应该将所有时间戳数据存储为秒数?请参阅developers.google.com/bigquery/timestamp,了解作为时间戳导入列时可接受的格式。导入后,它们既不是秒,也不是毫秒,而是时间戳-将它们与时间戳进行比较,或者将它们转换为首选的表示形式。