`

mysql使用笔记

阅读更多
select distinct Code , Date(BeginTime) as AtDate
from Session
where DATE_SUB(CURDATE(), INTERVAL 1 MONTH) = date(BeginTime)


date()
返回时间中的日期

DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
当前日期减去1个月

distinct 去掉重复数据

------------------------------------------------------
show processlist 中的ID栏显示。
KILL [CONNECTION | QUERY] thread_id

每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程。
------------------------------------------------------

select BeginTime , Count(distinct code)
from Session s1
where To_days(BeginTime) >= To_days('2011-01-14')
                and To_days(BeginTime) <= To_days('2011-02-14')
                and AppCode = 'StoneAge'
                and code in
                (
                    select distinct code
                    from Session s2
                    where To_days(s2.BeginTime) <= To_days(s1.BeginTime) - 1
                          and To_days(s2.BeginTime) >= To_days(s1.BeginTime) - 1
                 )
group by To_days(BeginTime)

To_days(s2.BeginTime)
返回日期的天数

update Card set expiration=date_add(bindDate , interval 1 year)
where expiration='0000-00-00'

date_add(bindDate , interval 1 year)
当前日期加1年

select * from role
where id between 2 and 3

查询两个数之间的数据,但包括ID为2和ID为3的数据

select TIME_TO_SEC(TIMEDIFF('2011-03-03 23:23:23' ,'2011-02-01 23:23:23'))

TIMEDIFF(expr,expr2)

TIMEDIFF() 返回起始时间 expr 和结束时间expr2 之间的时间。 expr 和expr2 为时间或 date-and-time 表达式,两个的类型必须一样。

mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',

    ->                 '2000:01:01 00:00:00.000001');

    -> '-00:00:00.000001'

mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',

    ->                 '1997-12-30 01:01:01.000002');

    -> '46:58:57.999999'

TIME_TO_SEC(time)

返回已转化为秒的time参数。

mysql> SELECT TIME_TO_SEC('22:23:00');

        -> 80580

mysql> SELECT TIME_TO_SEC('00:39:38');

        -> 2378


周统计
select DATE_FORMAT(incomingTime,'%x %v') as weekCount , count(0) as dateCount , min(date(incomingTime)) as minDate , max(date(incomingTime)) as maxDate 
from CallHistory WHERE uid <> '000.000' and date(incomingTime) <= '2011-09-04' and date(incomingTime) >= '2008-07-28' 
GROUP BY weekCount 
order by incomingTime

----下面是没有经过测试的--------------------------------------------------------------------------------------------------------------------------

    * TIMESTAMP(expr) , TIMESTAMP(expr,expr2)

对于一个单参数,该函数将日期或日期时间表达式 expr 作为日期时间值返回.对于两个参数, 它将时间表达式 expr2 添加到日期或日期时间表达式 expr 中,将theresult作为日期时间值返回。

mysql> SELECT TIMESTAMP('2003-12-31');

        -> '2003-12-31 00:00:00'

mysql> SELECT TIMESTAMP('2003-12-31 12:00:00','12:00:00');

        -> '2004-01-01 00:00:00'

    * TIMESTAMPADD(interval,int_expr,datetime_expr)

将整型表达式int_expr 添加到日期或日期时间表达式 datetime_expr中。 int_expr 的单位被时间间隔参数给定,该参数必须是以下值的其中一个: FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。

可使用所显示的关键词指定Interval值,或使用SQL_TSI_前缀。例如, DAY或SQL_TSI_DAY 都是正确的。

mysql> SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02');

        -> '2003-01-02 00:01:00'

mysql> SELECT TIMESTAMPADD(WEEK,1,'2003-01-02');

        -> '2003-01-09'

    * TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)

返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。interval 的法定值同TIMESTAMPADD()函数说明中所列出的相同。

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');

        -> 3

mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');

        -> -1

    * TIME_FORMAT(time,format)

其使用和 DATE_FORMAT()函数相同, 然而format 字符串可能仅会包含处理小时、分钟和秒的格式说明符。其它说明符产生一个NULL值或0。

若time value包含一个大于23的小时部分,则 %H 和 %k 小时格式说明符会产生一个大于0..23的通常范围的值。另一个小时格式说明符产生小时值模数12。

mysql> SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');

        -> '100 100 04 04 4'

----------------------------------------------
1.复制表结构及数据到新表
CREATE TABLE 新表
  SELECT * FROM 旧表

2.只复制表结构到新表
CREATE TABLE 新表
  SELECT * FROM 旧表 WHERE 1=2

即:让WHERE条件不成立.

CREATE TABLE 新表
  LIKE 旧表 //tianshibao

3.复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表
  SELECT * FROM 旧表

4.复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,.......)
  SELECT 字段1,字段2,...... FROM 旧表

转载于:http://zzjnet.blog.51cto.com/323001/63095/
------------------------------------------------
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics