‘壹’ mysql 时间格式化
可以是要用数据库的代码来进行设置的
‘贰’ mysql数据格式化
用正则表达式选择出来,然后用函数str_to_date来转换
update table_name set release_date = STR_TO_DATE(REPLACE(release_date,' ',''),'%d %M %Y @') where release_date REGEXP'^[0-9]{1,2}.*[July|Janurary|February|May|June|July|August|September|October|November|December|March].*@.*[0-9]$';
其他的类似哦
‘叁’ mysql格式化decimal字段函数。
FORMAT(X,D) 函数
将数字X 的格式写为'#,###,###.##',以四舍五入的方式保留小数点后 D 位, 并将结果以字符串的形式返回。若 D 为 0, 则返回结果不带有小数点,或不含小数部分。
mysql> SELECT FORMAT(12332.123456, 4);
-> '12,332.1235'
mysql> SELECT FORMAT(12332.1,4);
-> '12,332.1000'
mysql> SELECT FORMAT(12332.2,0);
-> '12,332'
‘肆’ mysql对小数格式化
格式化浮点数的问题,用format(col,2)保留两位小数点,出现一个问题,例如下面的语句,后面我们给出解决方法
复制代码代码如下:
SELECT FORMAT(12562.6655,2);
结果:12,562.67
查看文档:Formats the number X to a format like '#,###,###.##', rounded to D decimal places, and returns the result as a string. If D is 0, the result has no decimal point or fractional part.整数部分超过三位的时候以逗号分割,并且返回的结果是string类型的。
复制代码代码如下:
mysql> SELECT FORMAT(12332.123456, 4);
-> '12,332.1235'
mysql> SELECT FORMAT(12332.1,4);
-> '12,332.1000'
‘伍’ mysql数据库查询的格式化
DROP
TEMPORARY
TABLE
IF
EXISTS
TABLE_1;
CREATE
TEMPORARY
TABLE
TABLE_1
(
SELECT
*
FROM
(
SELECT
'100YUAN'
vMoney,'5REN'
vNum,'2015-09-15'
vDate
UNION
ALL
SELECT
'200YUAN','6REN','2015-09-21'
)a
);
DROP
TEMPORARY
TABLE
IF
EXISTS
TABLE_2;
CREATE
TEMPORARY
TABLE
TABLE_2
(
SELECT
*
FROM
(
SELECT
'2015-09-15'
vDate
UNION
ALL
SELECT
'2015-09-16'
UNION
ALL
SELECT
'2015-09-17'
UNION
ALL
SELECT
'2015-09-18'
UNION
ALL
SELECT
'2015-09-19'
UNION
ALL
SELECT
'2015-09-20'
UNION
ALL
SELECT
'2015-09-21'
UNION
ALL
SELECT
'2015-09-22'
UNION
ALL
SELECT
'2015-09-23'
UNION
ALL
SELECT
'2015-09-24'
)
a
);
SELECT
a.vDate,IFNULL(b.vMoney,0)
vMoney,IFNULL(b.vNum,0)
vNum
FROM
TABLE_2
a
LEFT
JOIN
TABLE_1
b
ON
a.vDate
=
b.vDate
ORDER
BY
a.vDate
‘陆’ mysql怎么将字符串格式化为日期
如何在MySQL中把一个字符串转换成日期,分为以下两种情况:
无需转化的
SELECT * FROM 表名WHERE date_sy>'2016-12-01' AND date_sy<'2016-12-05'
使用DATE_FORMAT
SELECT * FROM 表名 WHERE DATE_FORMAT( date_sy, '%Y-%m-%d')>'2016-12-01' AND DATE_FORMAT( date_sy, '%Y-%m-%d')<'2016-12-05'
‘柒’ mysql 字符串格式化的问题
可以用cast
selectcast(concat('2010-06-13','10:39:47')asdatetime);
+-----------------------------------------------------+
| cast(concat('2010-05-15 ', '10:39:47') as datetime) |
+-----------------------------------------------------+
| 2010-05-15 10:39:47 |
+-----------------------------------------------------+
1 row in set (0.00 sec)
‘捌’ 如何格式化MySQL输出代码
DATE_FORMAT(date,format)根据格式串format格式化日期或日期和时间值date,返回结果串。可用DATE_FORMAT()来格式化DATE或DATETIME值,以便得到所希望的格式。根据format字符串格式化date值:%S,%s两位数字形式的秒(00,01,...,59)%i两位数字形式的分(00,01,...,59)%H两位数字形式的小时,24小时(00,01,...,23)%h,%I两位数字形式的小时,12小时(01,02,...,12)%k数字形式的小时,24小时(0,1,...,23)%l数字形式的小时,12小时(1,2,...,12)%T24小时的时间形式(hh:mm:ss)%r12小时的时间形式(hh:mm:ssAM或hh:mm:ssPM)%pAM或PM%W一周中每一天的名称(Sunday,Monday,...,Saturday)%a一周中每一天名称的缩写(Sun,Mon,...,Sat)%d两位数字表示月中的天数(00,01,...,31)%e数字形式表示月中的天数(1,2,...,31)%D英文后缀表示月中的天数(1st,2nd,3rd,...)%w以数字形式表示周中的天数(0=Sunday,1=Monday,...,6=Saturday)%j以三位数字表示年中的天数(001,002,...,366)%U周(0,1,52),其中Sunday为周中的第一天%u周(0,1,52),其中Monday为周中的第一天%M月名(January,February,...,December)%b缩写的月名(January,February,...,December)%m两位数字表示的月份(01,02,...,12)%c数字表示的月份(1,2,...,12)%Y四位数字表示的年份%y两位数字表示的年份%%直接值“%”selectdate_format(日期字段,’%Y-%m-%d’)as‘日期’fromtest
‘玖’ 怎么把mysql查询的内容格式化成redis-cli可用的数据格式
从mysql搬一个大表到redis中,你会发现在提取、转换或是载入一行数据时,速度慢的让你难以忍受。这里我就要告诉一个让你解脱的小技巧。使用“管道输出”的方式把mysql命令行产生的内容直接传递给redis-cli,以绕过“中间件”的方式使两者在进行数据操作时达到最佳速度。
一个约八百万行数据的mysql表,原本导入到redis中需要90分钟,使用这个方法后,只需要两分钟。不管你信不信,反正我是信了。
Mysql到Redis的数据协议
redis-cli命令行工具有一个批量插入模式,是专门为批量执行命令设计的。这第一步就是把Mysql查询的内容格式化成redis-cli可用的数据格式。here we go!
我的统计表:
?1234567 CREATE TABLE events_all_time ( id int(11) unsigned NOT NULL AUTO_INCREMENT, action varchar(255) NOT NULL, count int(11) NOT NULL DEFAULT 0, PRIMARY KEY (id), UNIQUE KEY uniq_action (action) );准备在每行数据中执行的redis命令如下:
HSET events_all_time [action] [count]
按照以上redis命令规则,创建一个events_to_redis.sql文件,内容是用来生成redis数据协议格式的SQL:
-- events_to_redis.sql
?12345678910111213141516171819 SELECT CONCAT( "*4\r\n", '$', LENGTH(redis_cmd), '\r\n', redis_cmd, '\r\n', '$', LENGTH(redis_key), '\r\n', redis_key, '\r\n', '$', LENGTH(hkey), '\r\n', hkey, '\r\n', '$', LENGTH(hval), '\r\n', hval, '\r') FROM ( SELECT 'HSET' as redis_cmd, 'events_all_time' AS redis_key, action AS hkey, count AS hval FROM events_all_time ) AS tok, 用下面的命令执行:
?1 mysql stats_db --skip-column-names --raw < events_to_redis.sql | redis-cli --pipe很重要的mysql参数说明:
1.--raw: 使mysql不转换字段值中的换行符。
2.--skip-column-names: 使mysql输出的每行中不包含列名。