草庐IT

DATETIME_FORMAT

全部标签

mysql - 如何优化 mysql date_format() 以提高 where 子句中的速度?

我正在尝试优化具有220,000行的相对较大的mysql(myisam)表。表格本身并不大——大约23.5MB。那么,真正的问题是什么?-我收到这样的查询:SELECT*FROMtableWHEREDATE_FORMAT(date_field,'%m%d')='1128'LIMIT10我试图在date_field上设置一个索引,但EXPLAIN显示该索引根本没有被使用……我想这并不奇怪,因为DATE_FORMAT()。所以,我打算添加另一列,将日期保存为“%m%d”并在其上放置一个索引。我不想这样做的唯一原因是数据重复。顺便说一句,我使用date_field是一个生日字段,我确定我总是

java - 我可以使用 String.format 构建 Sql 查询字符串吗

我是Java编程的新手。我想使用String.format构建SQL查询字符串。我已经在C#中使用了String.format并且工作正常,但在java中却不行StringQuery=String.format("insertintoauthentication(Id,Name,Email,Password,DOB,Gender,Phone,SQ,SA)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}')",signup.getId(),signup.getName(),signup.getEmail(),signu

MySQL DATE_FORMAT 反转?

我正在使用MySQLDATE_FORMAT函数以我需要的格式获取日期,如下所示:SELECTDATE_FORMAT(`dob`,'%m-%d-%Y')asdobFROM`tblUsersProfile`WHERE`user_id`=1但现在我想将日期从这种格式更新为默认的mysql日期格式?我知道如何在php中执行此操作,但我正在尝试更改MySQL中的格式。有人知道吗? 最佳答案 你想要MySQL'sSTR_TO_DATE()function:UPDATEtblUsersProfileSET`dob`=STR_TO_DATE('1-

php - NOW() for DATETIME InnoDB Transaction guaranteed?

在单个InnoDB事务的2+个查询中使用NOW()是否保证插入的日期时间值在数据库中是准确的?换句话说,即使您在使用它的单个事务中有超过20个查询,NOW()是否总是相同,还是会改变? 最佳答案 Apparentlyitisnotguaranteed跨事务但可以从语句更改为语句。有一个解决方法可以使用asshownhere:BEGIN;SELECT@now:=NOW();INSERT...VALUES(...,@now,...);INSERT...VALUES(...,@now,...);UPDATE...@now...;COMMI

java - hibernate : Generic JDBC exception - Bad format for Time '838:59:59'

我有如下的hibernate映射:wheresstimeisoftypeTimestamp这里这个公式从我的数据中以这种格式“838:59:59”返回一些值。当我尝试在具有“java.sql.Time”类型的“Duration”字段中加载此值时出现异常,它给了我这个异常。"GenericJDBCexception-BadformatforTime'838:59:59'" 最佳答案 这确实不是一个有效的时间。您不应使用java.sql.Time来表示持续时间,尤其是当此持续时间可能超过24小时时,因为Time表示日期的时间部分。请改用

mysql - Hibernate 和 MySQL 5.6 的奇怪 DATETIME 行为

我将MySQL5.1社区服务器更新到5.6。在此之后,我遇到了奇怪的DATETIME(hibernate类型时间戳)行为。出于某种原因,保存hibernate映射对象后,我的日期从(例如)“2012-09-3023:59:59”更改为“2012-10-100:00:00”。我的日志说我确实保存了午夜日期之前的一秒,但是当我查看数据库时它已更改为第二天的开始。如果我使用相同的日期进行INSERT查询,它可以正常工作。根据MySQL文档,不应该使用DATETIME进行任何时区转换。我还使用MySQL5.5进行了测试,但我无法重现同样的问题。我的hbm映射如下所示:...编辑:我还有最新的M

mysql - 从 MySQL date_format 中的 %m 和 %d 中删除前导零

以下查询生成的日期类似于2016,01,02。如何让它从月份和日期中删除尾随零,使其看起来像这样2016,1,2?SELECTDATE_FORMAT(earning_created,'%Y,%m,%d')ASday,SUM(earning_amount)ASamountFROMearningsWHEREearning_account_id=?GROUPBYDATE(earning_created)ORDERBYearning_created 最佳答案 您可以使用%c来格式化不带前导零的月份,并使用%e来格式化月份中的日期:SELEC

python - 比较 SQLAlchemy 中的 DateTime 和 Interval

我有这门课:classMonitor(db.Model):'''BaseMonitorclass.'''__tablename__='monitor'id=db.Column(db.Integer(),primary_key=True)last_checked=db.Column(db.DateTime(timezone=False))poll_interval=db.Column(db.Interval(),default=datetime.timedelta(seconds=300))我有这个查询,我试图只返回自(现在-间隔)以来未检查过的对象:monitors=db.sessio

mysql - 如何在MYSQL中插入时间2009-09-22 18 :09:37. 881 我的列类型是DateTime

如何在mysql中插入时间2009-09-2218:09:37.881。实际上我可以在mysql中插入和检索时间2009-09-2218:09:37但每当我尝试插入2009-09-2218:09:37.881数据没有被插入数据库。2009-09-2218:09:37.881------->YYYY-MM-DDHH:MI:Sec.Ms我使用下面的查询创建了一个表CreatetableXYZ(MyTimeDateTime);我尝试了下面的查询,效果很好insertintoXYZ(MyTime)values('2009-09-2218:09:37');但我尝试了以下查询但没有正常工作(数据没

mysql - 0000-00-00 00 :00:00 entered as MySQL DateTime

下面是用于创建我的表的CREATETABLE语句:CREATETABLEIFNOTEXISTS`data_received`(`id`int(10)unsignedNOTNULL,`edit_time`datetimeNOTNULL}如果没有提供'edit_time'值,下面是如何将数据保存在表中:idedit_time10000-00-0000:00:00现在,如果我执行以下语句:SELECTTIMESTAMPDIFF(HOUR,edit_time,NOW())ASdiff_in_hoursFROMdata_received;我得到结果:NULL有人可以帮我了解发生了什么吗?