存档

文章标签 ‘Mysql’

mysql 查询当天、本周、上周、本月、上个月份的数据

2011年8月5日 admin 没有评论

查询当天的记录

select * from hb_article_view where TO_DAYS(hb_AddTime) = TO_DAYS(NOW())

查询当前这周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,’%Y-%m-%d’)) = YEARWEEK(now());

查询上周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,’%Y-%m-%d’)) = YEARWEEK(now())-1;

查询当前月份的数据
select name,submittime from enterprise where date_format(submittime,’%Y-%m’)=date_format(now(),’%Y-%m’)

查询距离当前现在6个月的数据
select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();

查询上个月的数据
select name,submittime from enterprise where date_format(submittime,’%Y-%m’)=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),’%Y-%m’)

select * from `user` where DATE_FORMAT(pudate,’%Y%m’) = DATE_FORMAT(CURDATE(),’%Y%m’) ;

select * from user where WEEKOFYEAR(FROM_UNIXTIME(pudate,’%y-%m-%d’)) = WEEKOFYEAR(now())

select *
from user
where MONTH(FROM_UNIXTIME(pudate,’%y-%m-%d’)) = MONTH(now())

select *
from [user]
where YEAR(FROM_UNIXTIME(pudate,’%y-%m-%d’)) = YEAR(now())
and MONTH(FROM_UNIXTIME(pudate,’%y-%m-%d’)) = MONTH(now())

select *
from [user]
where pudate between 上月最后一天
and 下月第一天

分类: PHP 标签:

mysql表类型MyISAM和InnoDB区别

2010年6月15日 admin 没有评论

mysql表类型MyISAM和InnoDB区别

MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果执行大量的SELECT,MyISAM是更好的选择。

InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,

对于支持事物的InnoDB类型的标,影响速度的主要原因是AUTOCOMMIT默认设置是打开的,而且程序没有显式调用BEGIN 开始事务,导致每插入一条都自动Commit,严重影响了速度。可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打开也可以),将大大提高性能。
1. 4.0以上mysqld都支持事务,包括非max版本。3.23的需要max版本mysqld才能支持事务。

2. 创建表时如果不指定type则默认为myisam,不支持事务。
可以用 show create table tablename 命令看表的类型。

阅读全文…

分类: 随便写写 标签: , ,

mysql备份还原数据库

2010年5月7日 admin 没有评论

1:使用命令。
备份:

c:\mysql\bin>mysqldump -uroot -h127.0.0.1 -proot  数据库>d:\sql.sql

一条mysqldump语句
mysqldump -u用户名 -h主机地址 -p密码 数据库名>导出的位置:\名称.sql

导入:

mysql>use database name;
Database changed
mysql>source d:\sql.sql;

OK
2:PHPMyadmin
众所周知, PhpMyadmin 是一款很好的可视化mysql管理软件,
选择数据库— 导出–选择SQL 另存为文件; OK
导入的时候同样 import
3:其他
Navicat MysqlFront 等等其他一些mysql可视化软件同样可以备份 还原数据库。

分类: PHP 标签: , ,

PHP读取EXCEL插入Mysql数据库中

2010年4月11日 admin 没有评论

最近公司有个客户需要将几千条的excel表数据导入,给人家导一下吧,以前到也看过一些导入的例子,方法很多,有的转换成csv格式的,txt的,什么都有,但是好多出现乱码情况的,网上PHP读取EXCEL的例子也很多,找了一个很好的类—phpExcelReader ,测试了几次,很不错。 下载地址

下载下后, 更改下 Excel– reader.php 的第31行

require_once 'Spreadsheet/Excel/Reader/OLERead.php';

改为

require_once 'OLERead.ince';

它给的例子的excel我这运行不了, 可能是我装的office的事吧 ^_^。
自己写一个, 现在写一个读取表 插入数据库的实例:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<?php 
require_once 'Excel/reader.php';         //加载所需类
$data = new Spreadsheet_Excel_Reader();  // 实例化
$data->setOutputEncoding('gbk');  //设置编码
$data->read('新建 Microsoft Excel 工作表.xls');  //read函数读取所需EXCEL表,支持中文
$conn= mysql_connect('localhost', 'root', ' ') or die("Can not connect to database.");    //连接数据库
mysql_query("set names 'gbk'");//设置编码输出
mysql_select_db('excel'); //选择数据库
for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++) {
$sql = "INSERT INTO test VALUES('".  $data->sheets[0]['cells'][$i][1]."','".  $data->sheets[0]['cells'][$i][2]."','".  $data->sheets[0]['cells'][$i][3]."','".  $data->sheets[0]['cells'][$i][4]."','".  $data->sheets[0]['cells'][$i][5]."','".  $data->sheets[0]['cells'][$i][6]."')";  
echo $sql.'<br />';  
 
//$insert = mysql_query($sql);  插入部分 注释掉,实际可以自己插入。
}
?>

注意事项
我这的 for $i=2 是从表的第二行开始(一般第一行都得是字段说明,就不插入数据库了。)
注意sheet段
numRows 为你表的行数
cells 表的列数,示例中 插入的是6列的excel表
如果excel是上传的,先上传然后在读取路径 表名,插入数据库。

分类: PHP 标签: , ,