我该如何asc date? 我在SQL如何ASC DESC日期哪个数据类型是varchar
2014-3-18 2014-1-15 2014-3-20 2015-3-18
的folllowing我试过FF代码,但它只是给我的错误在我的分贝。 是的,列的数据类型是varchar。 而且该列中还有NULL值。
SELECT * FROM `locate` ORDER BY CONVERT(DateTime, `Date`,101) DESC
请帮忙。谢谢! :)
我该如何asc date? 我在SQL如何ASC DESC日期哪个数据类型是varchar
2014-3-18 2014-1-15 2014-3-20 2015-3-18
的folllowing我试过FF代码,但它只是给我的错误在我的分贝。 是的,列的数据类型是varchar。 而且该列中还有NULL值。
SELECT * FROM `locate` ORDER BY CONVERT(DateTime, `Date`,101) DESC
请帮忙。谢谢! :)
看起来像你使用mysql所以你不能使用mssql
convert
函数。你必须使用STR_TO_DATE
SELECT *
FROM `locate`
ORDER BY
STR_TO_DATE(`Date`,'%Y-%m-%d') DESC
欲了解更多信息,请参阅documentation
谢谢!我需要一些mssql和mysql之间的基础知识。 – MonPadi
通过这种方式使用顺序:
SELECT DATE_FORMAT(`date`, '%d-%m-%Y') as date_formatted
FROM locate
ORDER BY `datetime` DESC
请让我知道,如果它的工作原理。
它会在MySQL上工作吗? - )) – marmeladze
让我们听听作者是否有效。如果不是,我们可以找到替代方案。 –
ofcourse does not work - ))因为他/她使用xampp - 这是一个apache,mysql,php/perl/python包。 – marmeladze
我猜EVENTDATE是CHAR或VARCHAR,而不是一个日期,否则您的ORDER BY子句将被罚款。
您可以使用转换为数值更改为日期和排序由
SELECT *
FROM
vw_view
ORDER BY
CONVERT(DateTime, EventDate,101) DESC
与问题是,作为斯帕克指出,在评论中,如果有EVENTDATE不能是一个值转换为查询不会执行的日期。
这意味着您应该排除坏的行或让坏行转到结果的底部
要排除的不良行只加WHERE则IsDate(EVENTDATE)= 1
要让不好的日期去你需要使用的底部CASE
eg
ORDER BY
CASE
WHEN IsDate(EventDate) = 1 THEN CONVERT(DateTime, EventDate,101)
ELSE null
END DESC
您使用哪个DBMS? – Jens
如果出现错误,还要添加错误消息 – Jens
您的SQL语法错误;检查与您的MariaDB服务器版本相对应的手册,以找到在'Date'附近使用的正确语法,101)DESC LIMIT 0,25'在第4行 – MonPadi