google bigquery 使用Google BigQuery的SQL中的订购日期(dd-mm-yyyy),google-bigquery,sql,google-bigquery,google Bigquery,Sql,Google Bigquery" /> google bigquery 使用Google BigQuery的SQL中的订购日期(dd-mm-yyyy),google-bigquery,sql,google-bigquery,google Bigquery,Sql,Google Bigquery" />

google bigquery 使用Google BigQuery的SQL中的订购日期(dd-mm-yyyy)

google bigquery 使用Google BigQuery的SQL中的订购日期(dd-mm-yyyy),google-bigquery,sql,google-bigquery,google Bigquery,Sql,Google Bigquery,我有一个返回日期、值和类别的查询: 输出: 18-Dec-2011 || 6 || Toys 01-Apr-2012 || -4 || Dog Collars 31-May-2012 || 4 || Cat 17-Dec-2011 || 3 || Health & Hygiene 12-Dec-2011 || 3 || Travel & Training 注意:日期类型为字符串。我正在使用 如何先以升序获取年份,然后是月份,然后是日期?将日期转换为日期格式ISO 9000样

我有一个返回日期、值和类别的查询:

输出:

18-Dec-2011 || 6 || Toys 01-Apr-2012 || -4 || Dog Collars 31-May-2012 || 4 || Cat 17-Dec-2011 || 3 || Health & Hygiene 12-Dec-2011 || 3 || Travel & Training 注意:
日期
类型为
字符串
。我正在使用


如何先以升序获取年份,然后是月份,然后是日期?

将日期转换为日期格式ISO 9000样式的yyyy mm dd,然后进行排序(如果您希望保留其他日期格式以用于渲染,可能会在新的单独列中进行排序)

Order By CAST(Date AS DATETIME) ASC
神谕

Order By TO_DATE(Date,'DD-Mon-YYYY') ASC
SQL Server,MySQL

Order By CAST(Date AS DATETIME) ASC
神谕

Order By TO_DATE(Date,'DD-Mon-YYYY') ASC

更新:正如下面FH所说,“BigQuery现在有一个时间戳类型:developers.google.com/BigQuery/Timestamp”

BigQuery当前没有日期或日期时间数据类型。您还可以将日期戳作为整数存储在BigQuery中,并可以使用将其转换为人类可读的时间


另一种方法是将日期戳作为字符串存储在
YYYY-MM-DD HH:MM:SS.uuuuu
格式中,使用PARSE_UTC_USEC()函数在有序查询中转换它们。

更新:正如下面的FH所说,“BigQuery现在有一个时间戳类型:developers.google.com/BigQuery/Timestamp”

BigQuery当前没有日期或日期时间数据类型。您还可以将日期戳作为整数存储在BigQuery中,并可以使用将其转换为人类可读的时间


另一种方法是将日期戳作为字符串存储在
YYYY-MM-DD HH:MM:SS.uuu
格式中,使用PARSE\u UTC\u USEC()函数在有序查询中转换它们。

日期的类型为string
。这是你的问题。解决这个问题。存在DateTime类型是有原因的;-)如果由于某种原因数据库被设置为“石头”而无法修复,您可能希望将其转换为DateTime。@Robii-好的,我将尝试转换并查看它的运行情况。@Madhivanan-我使用的是google bigqueryDo,不将日期存储为字符串,将它们存储为
DATE
@a_horse_,没有名称-不幸的是,当CSV文件上传到Google BigQuery上时,有效类型为“string”、“integer”、“float”和“boolean”。如果省略该类型,则假定该类型为“字符串”。所以我在那里做不了什么。因为我在客户端使用JavaScript,所以我有一个不同的解决方案来解决它。非常感谢。
日期是字符串类型的。
。这是你的问题。解决这个问题。存在DateTime类型是有原因的;-)如果由于某种原因数据库被设置为“石头”而无法修复,您可能希望将其转换为DateTime。@Robii-好的,我将尝试转换并查看它的运行情况。@Madhivanan-我使用的是google bigqueryDo,不将日期存储为字符串,将它们存储为
DATE
@a_horse_,没有名称-不幸的是,当CSV文件上传到Google BigQuery上时,有效类型为“string”、“integer”、“float”和“boolean”。如果省略该类型,则假定该类型为“字符串”。所以我在那里做不了什么。因为我在客户端使用JavaScript,所以我有一个不同的解决方案来解决它。无论如何,非常感谢。这与Google BigQuery无关-它使用类似SQL的语言,但不是标准的SQLQuery。虽然答案没有直接提到BigQuery,但我刚刚在我的BQ查询中添加了以下受此启发的代码,效果很好<代码>按字段排序ASC这也是实际回答如何排序问题的唯一答案。这与Google BigQuery无关-它使用类似SQL的语言,但不是标准的SQLQuery,而答案没有直接提到BigQuery,我刚刚在我的BQ查询中添加了下面的代码,它工作得很好<代码>按字段排序ASC这也是实际回答如何排序问题的唯一答案。我不同意:为了“渲染目的”,应该使用BigQuery日期格式功能,如STRFTIME\u UTC\u USEC和FORMAT\u UTC\u USEC。为什么要在重新格式化的日期字符串上浪费空间,尤其是当数据量变得巨大时?我确实说过“也许”,并将其放在括号中,好像是在暗示异想天开的思考……我同意:对于新用户(像我一样!),最好从标准日期格式开始,而不是使用unix时间戳。我不同意:出于“渲染目的”应该使用BigQuery日期格式功能,如STRFTIME\u UTC\u USEC和FORMAT\u UTC\u USEC。为什么要在重新格式化的日期字符串上浪费空间,尤其是当数据量变得巨大时?我确实说过“也许”,并将其放在括号中,好像是在暗示异想天开的思考……我同意:对于新用户(像我一样!)最好从标准日期格式开始,而不是使用unix时间戳。2013更新:BigQuery现在有时间戳类型:2013更新:BigQuery现在有时间戳类型: