0

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

SELECT Date, Value, Category FROM MyTable

输出:

2011 年 12 月 18 日 || 6 || 玩具   
2012 年 4 月 1 日 || -4 || 狗项圈
2012 年 5 月 31 日 || 4 || 猫
2011 年 12 月 17 日 || 3 || 健康与卫生    
2011 年 12 月 12 日 || 3 || 旅行和培训   

当我添加Order By Date ASC它时,它会根据日期而不是年份将日期按升序排列。

我希望它看起来像这样:

2011 年 12 月 12 日 || 3 || 旅行和培训
2011 年 12 月 17 日 || 3 || 健康与卫生
2011 年 12 月 18 日 || 6 || 玩具
2012 年 4 月 1 日 || -4 || 狗
2012 年 5 月 31 日 || 4 || 猫

注意: Date是类型string。我正在使用

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

4

3 回答 3

4

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

BigQuery 目前没有 Date 或 DateTime 数据类型。您还可以将 BigQuery 中的日期戳存储为POSIX(UNIX 纪元)日期格式的整数,并可以使用FORMAT_UTC_USEC 函数将它们转换为人类可读的时间。

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

于 2012-07-23T20:06:50.920 回答
2

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

于 2012-07-23T09:14:59.280 回答
-3

SQL 服务器,MySQL

Order By CAST(Date AS DATETIME) ASC

甲骨文

Order By TO_DATE(Date,'DD-Mon-YYYY') ASC
于 2012-07-23T09:15:42.667 回答