草庐IT

order_datetime

全部标签

mysql - ORDER BY 子句使查询变慢,尽管结果集很小

我有以下表格(删除了不相关的内容):createtablePayment(idintnotnullauto_increment,statusintnotnull,primarykey(id));createtableBooking(idintnotnullauto_increment,paymentIdintnotnull,nrOfPassengersintnotnull,primarykey(id),keypaymentFK(paymentId),constraintpaymentFKforeignkey(paymentId)referencesPayment(id));Bookin

MySQL : convert fractonal years to DATETIME

我有一个时间存储为分数年,例如。1994.232424.我需要将它们转换成SQL日期时间。诀窍是根据闰年的不同天数计算小数年。我欣赏一个很好的例子,说明如何写下一个SQL表达式,将其转换为日期,包括闰年条件?自年初以来,我至少需要几秒钟。闰年条件(在mssql中,虽然-我需要MySQL选项)将是(根据http://www.c-sharpcorner.com/blogs/8381/leap-year-logics-in-sql-server.aspx)SET@year=2012IF(((@year%4=0)AND(@year%100!=0))OR(@year%400=0))PRINT'1

mysql - 用于 "Where"比较的简单 "DateTime"子句

我正在尝试查看某个Person在特定时间点是否超过特定年龄。所以目前specificTime是一个DATETIME属性,它的值为'2011-05-21'Age也是一个DATETIME属性。有没有人对确定一个人的Age在specificTime是否大于15岁的查询有任何想法? 最佳答案 尝试select*fromPersonwhere(datediff(specificTime,Age)/365)>15有关日期时间函数的更多详细信息,请参阅http://dev.mysql.com/doc/refman/5.5/en/date-and-

MySQL 查询 ORDER BY DateTime 问题

我正在尝试按大于现在升序然后小于现在降序的最新更新日期时间对查询进行排序。这是我想要的输出:2014-06-0100:00:002014-06-0400:00:002014-06-0500:00:002014-06-0600:00:002014-05-1900:00:002014-05-1500:00:000000-00-0000:00:00但我得到的是这个:2014-06-0100:00:002014-06-0400:00:002014-06-0500:00:002014-06-0600:00:000000-00-0000:00:002014-05-1500:00:002014-05

mysql - 使用 "ORDER BY"更改查询结果

我最近正在学习SelfJoin的SQL教程.给出的表定义非常简单:stops(id,name)route(num,company,pos,stop)这里,stop属性指的是在stops表中提供名称的站点的id。如果您查看问题#10,我提出了以下解决方案,该站点指示该解决方案产生了正确的结果:SELECTdistincta.num,a.company,bstops.name,e.num,e.companyFROMrouteaJOINroutebON(a.company=b.companyANDa.num=b.num)JOINstopsbstopsONbstops.id=b.stopJOI

mysql - 为什么我的带有 ORDER BY 的 MySQL SELECT 语句这么慢,即使列上有 INDEX?

我有一个movies表。它有130万行。该表在title列上有一个INDEX,顺序为asc,长度为255。title列本身是一个VARCHAR(1000)。即使使用该设置,以下查询也需要8秒才能运行。关于为什么会这样,有人在黑暗中有想法或镜头吗?我很困惑,因为这似乎是一个需要解决的基本问题。SELECTtitleFROMmoviesORDERBYtitleLIMIT150000,50000当我取出ORDERBY时,查询速度超快(0.05秒):SELECTtitleFROMmoviesLIMIT150000,50000 最佳答案 编辑

mysql order by 子句在 select 语句之外

我不小心运行了以下查询并且它起作用了,现在我很困惑它为什么起作用。有人可以解释一下如何解释这个查询...(selectnamefromemploye_infolimit100)orderbyname;我一直认为“orderby”必须与显式select子句相关联,但在这种情况下它在()之外并且有效。这可能不是一个好的形式,但我只想知道这是偶然的还是预期的?谢谢! 最佳答案 您只需将排序应用于子查询在手册中查看更多信息:https://dev.mysql.com/doc/refman/5.5/en/select.htmlIfORDERB

mysql - 为涉及 join、group/order-by、union 等的 mysql 查询在表上创建索引

下面是在mysql进程列表中有10个"copyingtotmptable"状态的慢速查询的解释输出。explainSELECTdistinct(radgroupreply.groupname),count(distinct(radusergroup.username))ASusersFROMradgroupreplyLEFTJOINradusergroupONradgroupreply.groupname=radusergroup.groupnameWHERE(radgroupreply.groupnameNOTLIKE'FB-%'ANDradgroupreply.groupnameN

mysql - 未捕获的异常 'PDOException',消息为“SQLSTATE[22007] : Invalid datetime format: 1366 Incorrect string value

这是我遇到的错误。PDOException:Uncaughtexception'PDOException'withmessage'SQLSTATE[22007]:Invaliddatetimeformat:1366Incorrectstringvalue:'\xF0\x9F\x98\xB3'forcolumn'string'atrow1'我知道这里的问题。列表使用utf8。utf8编码无法存储4字节字符,因此会出错。解决此问题的一种方法是改用utf8mb4。我的问题是关于错误消息。我们正在使用MariaDB。为什么在错误消息中显示“无效的日期时间格式”?这是一个文本字段。与正在运行的查

mysql - 优化 ORDER BY

我正在尝试优化此查询,该查询按reputation字段(第1个)然后是id字段(第2个)对posts进行排序。没有第一个字段查询需要~0.250秒,但它需要~2.500秒(意味着慢10倍,太糟糕了)。有什么建议吗?SELECT--everythingisokhereFROMpostsASpORDERBY--1st:sortbyreputationifexists(1reputation=1day)(CASEWHENp.created_at>=unix_timestamp(now()-INTERVALp.reputationDAY)THEN+p.reputationELSENULLEND