目前,我正在设计一个包含数百万行的mysql表结构。我想搜索它的日期,时间,字段,按日期,年份等,但日期将由用户输入,所以它可能不是完整的日期一直。该字段已编入索引。在datetime字段上使用通配符是否足够快?就像这样
SELECT `id`, `moment`, `object_uid`, `content` FROM `events` WHERE moment like '2015%';
它会使用索引吗?
有一个选项可以确定用户是否输入了年份或月份、年份等等,但是我更愿意让MySQL来完成这项工作。
SQLfiddle
我需要忽略DateTime列中的时间部分来比较MySQL中的日期。我已经尝试了下面的SQL。
SELECT * FROM order_table where order_date=date_format('2012-05-03', '%Y-%m-%d');
即使MySQL表中有日期2012-05-03 10:16:46,它也不会检索任何行。在MySQL中比较日期时,如何忽略DateTime字段中的时间部分?
如何将列值(作为VARCHAR保留的“非MySQL”日期字符串)转换为"MySQL日期“,以便用于排序?
我有06-02-2019格式的日期(2月6日),但是MySQL本身似乎不能通过使用默认的DATE()函数来识别这一点。
我目前拥有的是:SELECT * FROM Services ORDER BY Date(nextdate) DESC;
我正在尝试从两个mysql表中获取数据,并按日期排列它们。这两个表涉及收入和支出。我试图实现的是首先显示来自收入表的数据,然后显示支出表中日期为15/04/2014的数据,然后再次循环下一个日期,并显示与收入表中的16/04/14相关的数据,然后显示支出表中的数据。目前的代码循环了所有次数的no。收入表中条目的数量。如何纠正这一点?代码如下:
<?php
include "connection.php";
?>
<table width="100%" border="1" align="center" cel
我有两张桌子:
第一个表包含当前一天(每小时)的数据--这个表有需要处理的原始数据。第二个表包含前一天的数据(每天)--这个表已经有为每天计算的值。
我希望将其组合到MySQL查询中的行,以便返回以前日期(每天)和当前日期(同样是每天)的数据。
目前,我正在使用两个mysql查询:
//table 1, data for current day
$qry1="
select DATE_FORMAT(completedate,'%Y-%m-%d') as date, SUM(IF(complete = 1,a
表结构:
+-------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| total | int(11) |
我正在选择在datetime列中具有特定日期的记录,但感觉有点草率,我想知道是否有更好的方法。我的查询如下所示:
SELECT *
FROM myTable
WHERE event_datetime
BETWEEN '2012-05-05 00:00:00' AND '2012-05-05 23:59:59'
它工作得很好。我只是在想,在mySQL中是否有更好的方法来做到这一点。
以下查询不返回结束日期(4月20日)的记录。我在某处读到,这是因为时间没有考虑到传递到查询中的日期。但在研究了各种解决方案后,我似乎无法为MySQL解决这个问题。 select * from listings
where created_date >= '2020-04-18'
and created_date <= '2020-04-20' created_date是一个日期时间字段。 注意,在这种情况下我不能使用“介于”。
如何在日期时间字段的日期部分创建索引?
mysql> SHOW COLUMNS FROM transactionlist;
+-------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+----------
我有一系列具有MySQL日期和时间属性的表,其中每个表可以由数千行组成。我需要能够交互地读取这些表,以便检索满足日期范围的这些行。所以我的SQL可能是:
select column_1, column_2 from table_name where createddate between '2011-01-01' and '2011-01-31';
一些查询也可以从第x天的时间p到第z天的时间q。
日期是MySQL类型DATE,时间是TIME类型。
有人知道优化这类查询的好方法是什么吗?我可以在日期和时间列上创建索引,使用时间戳作为替代,等等。
谢谢
摩根先生。
我需要创建一个查询,根据日期选择mysql的一些数据,但是在where子句中,我必须选择:
1-日期:
select count(*) from mailing_user where date_format(create_date, '%Y-%m-%d')='2013-11-05';
2-之间的使用
select count(*) from mailing_user where create_date between '2013-11-05 00:00:00' and '2013-11-05 23:59:59';
这两个查询可以工
我使用MySQL DATETIME列来存储日期和时间。日期采用UTC格式。我想从一天中选择项目。我现在要做的是:
SELECT * FROM data WHERE DATE(CONVERT_TZ(datetime, 'UTC', 'Australia/Sydney')) = '2012-06-01'
请注意,时区取决于用户
问题是,随着表的增长,它会变得非常慢。有什么解决方案可以让它更快吗?
我在MySQL中有以下查询:
SELECT sid, date
FROM table
WHERE wid = 12938248 AND url = 'example.com/landingpage'
只要我有这样的索引:
CREATE INDEX testindex ON table (wid,url,sid,date)
MySQL是否能够从索引本身检索sid、日期,还是需要访问磁盘?
谢谢!
使用PHP/mySQL,用户每天都可以获得一个指向其成员帐户的整数点。我将使用这些数据来确定是否应该授予一个点:创建日期(时间戳)和 Login (UNIX )。
授予这些点的过程是在用户登录时确定的。我的问题是,自上次登录以来,确定已经过去了多少天的最有效的方法是什么?第二,如果用户每天登录,我如何确定是否已经过去了24小时,并授予了一个点?过去的日子等于给出的点数(每天1点)。
目前,我正在使用以下代码:
/*
** Updates Points based on days since last visit
*/
static function UpdatePoints($username
如果我避免使用内置的mysql日期和时间函数,sql的速度( %)会更快吗?
我什么意思?例如:SELECT id FROM table WHERE WEEKOFYEAR(inserted)=WEEKOFYEAR(CURDATE())
MySQL有很多用于处理日期和时间的buil-in函数,而且它们也很适合。但那进取心呢?
上面的sql可以在没有内置函数的情况下重写,比如:SELECT id FROM table WHERE inserted BETWEEN 'date for 1 day of particular week 00:00:00' AND 'last d
在我的php5代码中,我希望使用UNIX_TIMESTAMP函数将日期时间转换为unix时间戳,而不使用php代码进行转换,因为我相信这种方式会更快,但是如何从行集集中获取unix时间戳呢?
下面是数据库架构的摘要
age int(5)
user varchar(256)
created timestamp CURRENT_TIMESTAMP
$query="SELECT user, UNIX_TIMESTAMP(created) FROM accounts WHERE age='$age'" ;
$result = mysql_qu
您好,我有一个关于当日期不是以默认的mysql格式存储时使用大于运算符的问题。我有一个以dd/mm/yyyy格式存储日期的数据库。我试着用合适的mysql格式存储它们,但过了一段时间我放弃了。现在,我有一个表,其中包含一系列日期,格式为dd/mm/yyyy,并且我希望选择晚于所选日期的日期
select * from table where date>'25/05/2015'
当我这样做的时候,我会得到这样的结果
date
27/05/2015
28/04/2015
我做错了什么?我能做些什么来修复它呢?
我发布了,这个问题得到了完美的解决,但是我现在需要将给出的相同代码应用于不同的MySQL代码。
我所拥有的是
SELECT value, COUNT(*) AS 'num'
FROM table_c
WHERE table_c_id IN (9, 17, 25)
GROUP BY value
我现在想做的是,如果结果是在当前日期输入的,则只显示结果?
我用来检查当前日期的当前代码片段是(日期是unixtime格式的)
( xxxxxxxxxxxxxx and curdate() = date( from_unixtime( b.crm_date_time_column )
此查询不会在合理的时间内完成:
mysql> select * from prices where symbol='GOOG' and date in
(select max(date) from prices where symbol='GOOG' and yearweek(date) > 201001
group by yearweek(date));
‘'prices’是一个键控id,它有一个辅助的唯一索引(symbol,date):
mysql> show index from prices;
+--------+------