Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL:是否可以对包含datetime的字符串部分进行排序_Postgresql_Sorting - Fatal编程技术网

PostgreSQL:是否可以对包含datetime的字符串部分进行排序

PostgreSQL:是否可以对包含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 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.zip

我尝试了下面的语句,但它在datetime之前按顺序排序:
按文件名顺序从tblData中选择文件名

DATA01\u 0002\u 20210127135030.zip
DATA01\u 0003\u 20210126135705.zip
DATA01_0004_20210126142913.zip

按文件名说明从tblData顺序中选择文件名

DATA01\u 0004\u 20210126142913.zip
DATA01\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)进行订购。

非常感谢您,我将了解有关您给我的声明的更多信息!非常感谢你,我将进一步了解你给我的声明!