mysql研究学习:(偶尔更新中。。)
2011-12-29 14:38
134 查看
1,
mysql 中,计算2个datetime类型的字段,相减得到的分钟数:两个时间相加减(除以60为了得到分钟,直接想减去,是得到了秒):
SELECT (UNIX_TIMESTAMP('2012-02-21 09:00:00')-UNIX_TIMESTAMP('2012-02-21 08:30:00'))/60
------------------------------------------------------
数据库连接不再说,以下均为一些基本操作或者一些需要了解的知识点:
1,批量导入和导出数据:转载+转载:MySQL批量导出、导入文本数据/合并文本文件等;
2,在ms sql server中或access中,若要查询前10条记录,使用top 10即可,但在mysql中不支持这个写法,它用limit 10。
我们可以利用MySQL中SELECT支持的一个子句——LIMIT——来完成这项功能。
LIMIT可以实现top N查询,也可以实现M至N(某一段)的记录查询,具体语法如下:
SELECT * FROM MYTABLE ORDER BY AFIELD LIMIT offset, recnum
其中offset为从第几条(M+1)记录开始,recnum为返回的记录条数。例:
select * from mytable order by afield limit 2, 5
3,select
* from yourTablewhere date(dateColumn)=curdate();
查询今天
sqlserver:INSERT INTO Leaf(TodayTime,TimesToday) VALUES(getdate(),0)
mysql:INSERT INTO Leaf(TodayTime,TimesToday) VALUES(curdate(),0)
select CONVERT(varchar(10), getDate(),120) --2009-05-15 13:32:53这样子的格式;
select convert(char(8),getdate(),112) ----20020101
select convert(char(8),getdate(),108) ---06:05:05
2012-01-09: select TodayTime from Leaf where DATE(TodayTime)=CURDATE()
加一秒:
若位于另一端的表达式是一个日期或日期时间值 , 则INTERVAL expr type只允许在 +操作符的两端。对于 –操作符, INTERVALexpr type只允许在其右端,原因是从一个时间间隔中提取一个日期或日期时间值是毫无意义的。 (见下面的例子)。
mysql> SELECT '1997-12-31 23:59:59' + INTERVAL 1 SECOND;
-> '1998-01-01 00:00:00'
加一天:select DATE(HotTime + INTERVAL 1 day) from Leaf
mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
-> INTERVAL 1 DAY);
-> '1998-01-01 23:59:59'
3,
用于日期值的函数通常会接受时间日期值而忽略时间部分。而用于时间值的函数通常接受时间日期值而忽略日期部分。
返回各自当前日期或时间的函数在每次询问执行开始时计算一次。这意味着在一个单一询问中,对诸如NOW() 的函数多次访问总是会得到同样的结果(未达到我们的目的,单一询问也包括对存储程序或触发器和被该程序/触发器调用的所有子程序的调用 )。这项原则也适用于 CURDATE()、 CURTIME()、 UTC_DATE()、
UTC_TIME()、UTC_TIMESTAMP(),以及所有和它们意义相同的函数。
CURRENT_TIMESTAMP()、 CURRENT_TIME()、 CURRENT_DATE()以及FROM_UNIXTIME()函数返回连接当前时区内的值,这个值可用作time_zone系统变量的值。此外, UNIX_TIMESTAMP()假设其参数为一个当前时区的时间日期值。请参见5.10.8节,“MySQL服务器时区支持”。
以下函数的论述中返回值的范围会请求完全日期。 若一个日期为“零” 值,或者是一个诸如'2001-11-00'之类的不完全日期, 提取部分日期值的函数可能会返回 0。 例如, DAYOFMONTH('2001-11-00')会返回0。
ADDDATE(date,INTERVAL expr type) ADDDATE(expr,days)
当被第二个参数的INTERVAL格式激活后, ADDDATE()就是DATE_ADD()的同义词。相关函数SUBDATE()则是DATE_SUB()的同义词。对于INTERVAL参数上的信息 ,请参见关于DATE_ADD()的论述。
mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
-> '1998-02-02'
4,ORDER BY TimesDESC LIMIT 0,8 注意sql之间的一些顺序问题
5,``,有关键字的时候加··符号
mysql 中,计算2个datetime类型的字段,相减得到的分钟数:两个时间相加减(除以60为了得到分钟,直接想减去,是得到了秒):
SELECT (UNIX_TIMESTAMP('2012-02-21 09:00:00')-UNIX_TIMESTAMP('2012-02-21 08:30:00'))/60
------------------------------------------------------
数据库连接不再说,以下均为一些基本操作或者一些需要了解的知识点:
1,批量导入和导出数据:转载+转载:MySQL批量导出、导入文本数据/合并文本文件等;
2,在ms sql server中或access中,若要查询前10条记录,使用top 10即可,但在mysql中不支持这个写法,它用limit 10。
我们可以利用MySQL中SELECT支持的一个子句——LIMIT——来完成这项功能。
LIMIT可以实现top N查询,也可以实现M至N(某一段)的记录查询,具体语法如下:
SELECT * FROM MYTABLE ORDER BY AFIELD LIMIT offset, recnum
其中offset为从第几条(M+1)记录开始,recnum为返回的记录条数。例:
select * from mytable order by afield limit 2, 5
3,select
* from yourTablewhere date(dateColumn)=curdate();
查询今天
sqlserver:INSERT INTO Leaf(TodayTime,TimesToday) VALUES(getdate(),0)
mysql:INSERT INTO Leaf(TodayTime,TimesToday) VALUES(curdate(),0)
select CONVERT(varchar(10), getDate(),120) --2009-05-15 13:32:53这样子的格式;
select convert(char(8),getdate(),112) ----20020101
select convert(char(8),getdate(),108) ---06:05:05
2012-01-09: select TodayTime from Leaf where DATE(TodayTime)=CURDATE()
加一秒:
若位于另一端的表达式是一个日期或日期时间值 , 则INTERVAL expr type只允许在 +操作符的两端。对于 –操作符, INTERVALexpr type只允许在其右端,原因是从一个时间间隔中提取一个日期或日期时间值是毫无意义的。 (见下面的例子)。
mysql> SELECT '1997-12-31 23:59:59' + INTERVAL 1 SECOND;
-> '1998-01-01 00:00:00'
加一天:select DATE(HotTime + INTERVAL 1 day) from Leaf
mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
-> INTERVAL 1 DAY);
-> '1998-01-01 23:59:59'
3,
用于日期值的函数通常会接受时间日期值而忽略时间部分。而用于时间值的函数通常接受时间日期值而忽略日期部分。
返回各自当前日期或时间的函数在每次询问执行开始时计算一次。这意味着在一个单一询问中,对诸如NOW() 的函数多次访问总是会得到同样的结果(未达到我们的目的,单一询问也包括对存储程序或触发器和被该程序/触发器调用的所有子程序的调用 )。这项原则也适用于 CURDATE()、 CURTIME()、 UTC_DATE()、
UTC_TIME()、UTC_TIMESTAMP(),以及所有和它们意义相同的函数。
CURRENT_TIMESTAMP()、 CURRENT_TIME()、 CURRENT_DATE()以及FROM_UNIXTIME()函数返回连接当前时区内的值,这个值可用作time_zone系统变量的值。此外, UNIX_TIMESTAMP()假设其参数为一个当前时区的时间日期值。请参见5.10.8节,“MySQL服务器时区支持”。
以下函数的论述中返回值的范围会请求完全日期。 若一个日期为“零” 值,或者是一个诸如'2001-11-00'之类的不完全日期, 提取部分日期值的函数可能会返回 0。 例如, DAYOFMONTH('2001-11-00')会返回0。
ADDDATE(date,INTERVAL expr type) ADDDATE(expr,days)
当被第二个参数的INTERVAL格式激活后, ADDDATE()就是DATE_ADD()的同义词。相关函数SUBDATE()则是DATE_SUB()的同义词。对于INTERVAL参数上的信息 ,请参见关于DATE_ADD()的论述。
mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
-> '1998-02-02'
4,ORDER BY TimesDESC LIMIT 0,8 注意sql之间的一些顺序问题
5,``,有关键字的时候加··符号
相关文章推荐
- MySQL 学习<七> 插入、更新与删除数据
- MySQL学习10:外键约束下的更新操作
- MySQL学习笔记 第八讲:增加、删除、更新数据和备份还原
- mysql学习总结一当数据不存在的时候插入,存在的时候进行更新,删除重复数据
- 我的MYSQL学习心得(八) 插入 更新 删除
- MYSQL学习笔记(十六)更新和删除数据
- Amoeba for MySQL学习研究之注意事项
- 热更新Tinker研究(二):结合源码学习Dex格式
- 我的MYSQL学习心得(八) 插入 更新 删除
- MySQL学习笔记(九)多表更新
- 压榨自己的学习能力极限,每天学习新内容之MySQL服务器!(三)(今天内容更新完结)
- Mysql学习心得之插入、更新、删除记录
- 数据库了解及MySQL学习(持续更新)
- php学习笔记(8)mysql多行同时更新数据解决办法
- Amoeba for MySQL学习研究之配置
- MySQL学习笔记(六)插入、更新、删除记录
- mysql 学习笔记-插入、更新、删除
- MySQL 一致性读 深入研究 digdeep博客学习
- MySQL 5.6学习笔记(查询数据、插入、更新、删除数据)
- 与MSSQL对比学习MYSQL的心得(八)--插入 更新 删除