我正在使用一个MYSQL数据库,其中开发人员已将日期存储为时间戳,而不是可以查询的“日期时间”字段。 下面的查询创建了一个'AS‘字段date_formatted,并且输出是正确的。 但是,不能在WHERE语句中使用该字段来按日期限制它 按照日期范围限制时间戳的正确语法是什么? SELECT *,DATE_FORMAT(FROM_UNIXTIME(`timestamp`), '%Y-%m-%d %H:%i:%s') AS 'date_formatted'
FROM `table`
where 'date_formatted' >
目前,我在mysql中有一个包含3列的表。Added_date(日期时间)、completion_date(日期)和expired(日期)。completion_date和expired列的默认值设置为0000-00-00。现在,我正在尝试通过added_date列为表创建索引,我对该列使用了以下语句: ALTER TABLE listings ADD INDEX added_date (added_date) 这会给我一个错误Invalid default value for 'completion_date',所以现在要在我的表中将缺省值更改为null,我使用以下命令:
我有一系列具有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中日期的默认值(不是时间戳),但出现以下错误
ALTER TABLE `RMS`.`transactionentry`
CHANGE `Date` `Date` DATE DEFAULT NOW() NOT NULL
误差
Invalid default value for 'Date'
同例
alter table `RMS`.`transactionentry`
change `Date` `Date` date default 'CURRENT_DATE' NOT NULL
我有一个mysql users表,其中列join_date格式为"d/m/Y“。我只想将该列更新为现有数据的时间戳。
id name join_date
1 john 08/02/2014
现在,我需要运行一段代码(比如while循环或foreach),以便将列join_date中的所有日期数据更新为时间戳时间():如下所示:
id name join_date
1 john 1391814000
伙计们有什么建议吗?提前谢谢。
如果您在MySQL中像这样运行一个SQL语句:
SHOW TABLE STATUS LIKE 'TableName'
您将得到一个create_time列,其中包含创建表的日期/时间。
是否有方法通过SQL查询修改或“触摸”该日期/时间?
这个表正在存储非关系缓存的数据,有时我希望重用这些数据,即使它是旧的。
我有一个快速和迅速的问题。
SELECT `deals`.*
FROM `deals`
WHERE
`is_featured` = 1 AND
`status` = 'active' AND
CURDATE() BETWEEN start_date AND DATE_ADD(end_date, INTERVAL 1 DAY)
ORDER BY `end_date` DESC
LIMIT 1
是这样的吗?
start_date为"2012-01-11 00:00:00“,end_date为"2012-01-11 23:59:
我使用下面的MySQL语句从我的表' recent _activity‘中回显我最近的更改。
$query1 = "SELECT * FROM $table WHERE user_id = '{$_SESSION['id']}' AND date > NOW() - INTERVAL 30 DAY GROUP BY activity_type ORDER BY date DESC";
$result1 = mysql_query($query1);
while ($row1 = mysql_fetch_array($result1)
我有一个表,它有一个日期时间和一个时间字段,其中日期时间实际上就是日期,而时间字段就是时间。我需要结合这两个字段来创建一个"created_time“计算字段。我想持久化这个计算字段,但是当我试图组合它们时,我总是得到一个“不确定的”错误。首先,我不知道为什么它是不确定的,但第二,有什么奇特的方法来绕过它并完成这一点吗?
--------------------------------------------------------
date (datetime) | time (varchar)
---------------------
我有一个只有一列的表,它的数据类型是Date
Column_name Type Computed Length
colunmname date no 3
如何将此数据类型转换为日期时间。
我在下面试过了,但是它带来了错误:
ALTER TABLE tableName ALTER COLUMN columnname DATETIME
错误:
Msg 242,级别16,状态3,第1行将日期数据类型转换为日期时间数据类型导致超出范围的值。
声明已被终止。
有人能帮帮我吗!
我正在尝试确定使用访问特定模式的用户是何时更新的表。
作为根用户,当我运行SELECT * FROM mysql.innodb_table_stats WHERE table_name = 'table';时,我在列UPDATE_TIME中得到一个日期时间
作为一个用户,当我为同一个表模式运行SELECT UPDATE_TIME, TABLE_SCHEMA, TABLE_NAME FROM information_schema.tables where TABLE_SCHEMA = 'database' ORDER BY UPDATE_TIME DESC, TA
我试图使用这个查询在mysql表中添加一个列,但是mysql在抱怨语法。我见过很多消息来源,但我看不出这里出了什么问题。
mysql> ALTER TABLE dog add date TIMESTAMP(14);
错误:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '(14)'
at line 1
表名“狗
我有这个查询,要将日期设置为遥远的未来。该表有400万条记录。而且这个查询非常简单。但查询几乎花了3分钟才能运行。
UPDATE TABLE
SET to_date = STR_TO_DATE('31-01-3000','%d-%m-%Y')
WHERE to_date IS NULL;
此列上没有索引。
如何调优此查询或MySQL本身?非常感谢。
我想要替换表的全部内容,而不影响进程中任何传入的SELECT语句。
用例需要有一个表,该表存储定期提取的邮箱信息,并需要存储在PostgreSQL表中。有许多客户端使用一个不断查询同一表的应用程序。
一般情况下,我会做一些类似于(伪码传入)的事情.
BEGIN TRANSACTION
TRUNCATE TABLE
INSERT INTO
COMMIT
但不幸的是,在此过程中无法读取表;因为完成INSERT INTO需要时间。桌子上锁了。
在MySQL中,我会使用他们的原子RENAME TABLE命令来避免这些问题.
CREATE TABLE table_new LIKE table;
INS