我需要从结构为 yyyyMMddHHmmss 20170227141500 的时间戳中按年和月分组
Posted
技术标签:
【中文标题】我需要从结构为 yyyyMMddHHmmss 20170227141500 的时间戳中按年和月分组【英文标题】:I need to group by year and month from a timestamp structured as yyyyMMddHHmmss 20170227141500 【发布时间】:2021-02-10 21:45:50 【问题描述】:我需要从时间戳按年和月分组,结构为 yyyyMMddHHmmss 20170227141500(Google 的 bigquery gkg 表)。我需要计算年份的每月记录。数据类型为整数。时间戳是列名。事实上,我需要按时间戳的前 6 位进行分组。 yearmonth 是我的组名,不包含在表中。
SELECT count(GKGRECORDID), themes, yearmonth
FROM `gdelt-bq.gdeltv2.gkg`
CONCAT(yearmonth( timestamp))
group by GKGRECORDID, themes, yearmonth
【问题讨论】:
列的数据类型是什么> 【参考方案1】:这是一个数字,因此您不能使用日期/时间功能。可以转换成字符串,取最左边的6个字符:
SELECT themes, left(cast(timestamp as string), 6) as yearmonth,
count(GKGRECORDID)
FROM `gdelt-bq.gdeltv2.gkg`
GROUP BY themes, yearmonth;
您应该修复数据以将日期/时间值存储为datetime
s 或timestamp
s。
【讨论】:
以上是关于我需要从结构为 yyyyMMddHHmmss 20170227141500 的时间戳中按年和月分组的主要内容,如果未能解决你的问题,请参考以下文章
sqlserver中将datetime类型转换为yyyyMMddHHmmss格式
如何在SQL Server中将datetime值转换为yyyymmddhhmmss?