DATE_FORMA (date, format) 根据格式串format 格式化日期或日期和时间值date,返回结果串。可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据format字符串格式化date值:
%S, %s 两位数字形式的秒( 00,01, . . ., 59)
%i 两位数字形式的分( 00,01, . . ., 59)
%H 两位数字形式的小时,24 小时(00,01, . . [...]
本来在本地测试好的程序(PHP5+mysql4.0),上传到服务器的时候运行出现了下面的错误提示:
mysql #1054错误 - Unknown column …. in ‘on clause’
到网上搜索到原因是由于MYSQL数据的问题,因为MYsql5.0要把联合的表用括号包含起来才行:
3.执行查询:
SELECT (c.id, a.id, b.id) FROM A a, B b LEFT JOIN C c ON c.a_id = a.a_id AND c.b_id = b.b_id
这句话执行应该是没有错误的,但是
Mysql 5 下执行则会出错: “ERROR 1054 (42S22): Unknown column ‘a.id’ in ‘on clause’”
因为mysql下有这样一个BUG,要把联合的表用括号包含起来才行:
SELECT (c.id, a.id, b.id) FROM (A a, B b) LEFT JOIN C c [...]
本章论述了一些可用于操作时间值的函数。关于每个时间和日期类型具有的值域及指定值的有效格式,请参见11.3节,“日期和时间类型”。
下面的例子使用了时间函数。以下询问选择了最近的 30天内所有带有date_col 值的记录:
mysql> SELECT something FROM tbl_name
-> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;
注意,这个询问也能选择将来的日期记录。
用于日期值的函数通常会接受时间日期值而忽略时间部分。而用于时间值的函数通常接受时间日期值而忽略日期部分。
返回各自当前日期或时间的函数在每次询问执行开始时计算一次。这意味着在一个单一询问中,对诸如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);
[...]
ASCII(str)
返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。
mysql> select ASCII(’2′);
-> 50
mysql> select ASCII(2);
-> 50
mysql> select ASCII(’dx’);
-> 100
也可参见ORD()函数。
ORD(str)
如果字符串str最左面字符是一个多字节字符,通过以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与ASCII()函数返回的相同值。
mysql> select ORD(’2′);
[...]
要想从MYSQL随机抽取数据库里的几条数据,我们就须要用到Rand()函数,该函数配合order BY语句可以实现该功能。
select * from table order by rank() limit 5;








Recent Comments