我有一个返回日期,值和类别的查询:
SELECT Date, Value, Category FROM MyTable
输出:
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
当我添加Order By Date ASC
时,它会根据 日期 而不是年份按升序排列日期。
我希望它看起来像这样:
12-Dec-2011 || 3 || Travel & Training 17-Dec-2011 || 3 || Health & Hygiene 18-Dec-2011 || 6 || Toys 01-Apr-2012 || -4 || Dog 31-May-2012 || 4 || Cat
注意: Date
的类型为string
。我正在使用google-bigquery。
如何以升序排列年份,然后是月份,然后是日期?
答案 0 :(得分:4)
更新:如下面的FH所示," BigQuery现在有一个时间戳类型:developers.google.com/bigquery/timestamp"
BigQuery当前没有Date或DateTime数据类型。您还可以将日期戳存储在BigQuery中作为POSIX (UNIX epoch) date format中的整数,并使用{{{}}将它们转换为人类可读时间3}}
另一种方法是将日期戳存储为YYYY-MM-DD HH:MM:SS.uuuuuu
格式的字符串,使用PARSE_UTC_USEC()函数将它们转换为有序查询。
答案 1 :(得分:2)
将日期转换为日期格式ISO 9000样式yyyy-mm-dd然后对其进行排序(如果您想保留其他日期格式以进行渲染,可能在新的单独列中)。
答案 2 :(得分:-3)
SQL Server,MySQL
Order By CAST(Date AS DATETIME) ASC
ORACLE
Order By TO_DATE(Date,'DD-Mon-YYYY') ASC