PostgreSQL:是否可以对包含datetime的字符串部分进行排序
我有包含数据序列和日期时间类型的列的名称,如下所示: DATA01\u 0003\u 20210126135705.zipPostgreSQL:是否可以对包含datetime的字符串部分进行排序,postgresql,sorting,Postgresql,Sorting,我有包含数据序列和日期时间类型的列的名称,如下所示: DATA01\u 0003\u 20210126135705.zip DATA01\u 0002\u 20210127135030.zip DATA01_0004_20210126142913.zip 我要按日期时间排序,然后是序列字符串,可以吗 DATA01\u 0002\u 20210127135030.zip DATA01\u 0004\u 20210126142913.zip DATA01_0003_20210126135705.zi
DATA01\u 0002\u 20210127135030.zip
DATA01_0004_20210126142913.zip 我要按日期时间排序,然后是序列字符串,可以吗 DATA01\u 0002\u 20210127135030.zip
DATA01\u 0004\u 20210126142913.zip
DATA01_0003_20210126135705.zip 我尝试了下面的语句,但它在datetime之前按顺序排序:
按文件名顺序从tblData中选择文件名
DATA01\u 0002\u 20210127135030.zipDATA01\u 0003\u 20210126135705.zip
DATA01_0004_20210126142913.zip
按文件名说明从tblData顺序中选择文件名
DATA01\u 0004\u 20210126142913.zipDATA01\u 0003\u 20210126135705.zip
DATA01_0002_20210127135030.zip
在postgresql中,可以按表达式排序 要按文件的时间戳排序,必须从字符串中提取时间戳。根据您的示例,我将猜测最后一个
\uu
后面的文本将包含日期。如果这个假设成立,那么下面将按日期排序
SELECT filename from tbldata
order by reverse(split_part(reverse(filename), '_', 1))
如果
\uu
的数量是固定的,则不需要使用两个反转的技巧。您可以改为按拆分部分排序(文件名,'.',3)
在postgresql中,您可以按表达式排序
要按文件的时间戳排序,必须从字符串中提取时间戳。根据您的示例,我将猜测最后一个\uu
后面的文本将包含日期。如果这个假设成立,那么下面将按日期排序
SELECT filename from tbldata
order by reverse(split_part(reverse(filename), '_', 1))
如果
\uu
的数量是固定的,则不需要使用两个反转的技巧。您可以通过拆分部分(文件名“,”,“,”,3)进行订购。
非常感谢您,我将了解有关您给我的声明的更多信息!非常感谢你,我将进一步了解你给我的声明!