到目前为止SQL的时间戳

时间:2018-02-21 16:45:54

标签: sql sql-server sql-server-2008 timestamp google-bigquery

我需要像这样更改时间戳:

1519152103659000     
1519152113786000     
1519152118754001     
1519152118972002     
1519152119026003

到sql中的日期。这个时间戳是我表中的一列。我使用timestamp命令,但我有一个错误:

错误:参数类型的函数TIMESTAMP没有匹配的签名:INT64。支持的签名:TIMESTAMP(STRING,[STRING]); TIMESTAMP(日期,[STRING]); TIMESTAMP(DATETIME,[STRING])在[2:1]

谢谢!

2 个答案:

答案 0 :(得分:6)

以下示例适用于BigQuery StandardSQL

Row timestamp_in_microseconds_as_int64  timestamp_as_timestamp          dt   
1   1519152103659000                    2018-02-20 18:41:43.659 UTC     2018-02-20   
2   1519152113786000                    2018-02-20 18:41:53.786 UTC     2018-02-20   
3   1519152118754001                    2018-02-20 18:41:58.754 UTC     2018-02-20   
4   1519152118972002                    2018-02-20 18:41:58.972 UTC     2018-02-20   
5   1519152119026003                    2018-02-20 18:41:59.026 UTC     2018-02-20   

结果为

int2binary = {}
largest_number = pow(2,16)
binary = np.unpackbits(np.array([range(largest_number)],dtype=np.uint16).T,axis=1)

答案 1 :(得分:1)

只要要将时间戳转换为日期时间字符串,就可以像这样简单地使用DATEADD:

DATEADD(s, timestamp_column_name_here, '1970-01-01')

有问题的列应包含时间戳字符串(因此不应是时间戳类型的字符串)。