首页 > 编程知识 正文

转换mysql数据库字段类型(mysql转换字符类型)

时间:2023-12-24 12:05:19 阅读:320056 作者:NCOB

本文目录一览:

数据库中转换数据类型的几种方法

oracle有三种最基本的数据类型,即字符型、数值型、日期型。 (注意需要起别名的地方要起别名)

oracle提供的单行函数中,针对不同的数据类型,提供大量实用的函数,同时提供一系列数据类型转换函数,如下:

sql.append(" select CURVE_NAME,S_YEAR_LIMIT,AVERAGE_VALUE,to_char(d_date,'yyyy-MM-dd') d_date from t_treasury_yield_curve t where d_date = to_date ('"+d_date+"','yyyy-MM-dd')");

24 小时的形式显示出来要用 HH24select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;

select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;to_date() function。

1、日期格式参数 含义说明

D 一周中的星期几。

DAY 天的名字,使用空格填充到 9 个字符。DD 月中的第几天,DDD 年中的第几天。

DY 天的简写名,IW ISO 标准的年中的第几周,IYYY ISO 标准的四位年份。YYYY 四位年份,

YYY,YY,Y 年份的最后三位,两位,一位。

select sysdate,sysdate - interval '7' month from dual。

当前时间减去 7 年的时间。

select sysdate,sysdate - interval '7' year from dual。

时间间隔乘以一个数字。

select sysdate,sysdate - 8 *interval '2' hour from dual

2、日期到字符操作

select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual,select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual,select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from dual。

select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from dual。

3、字符到日期操作

select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from dual。

具体用法和上面的 to_char 差不多。

4、TO_NUMBER 

使用TO_NUMBER函数将字符转换为数字

TO_NUMBER(char[, '格式'])

数字格式格式:

9 代表一个数字 。

0 强制显示0 。

$ 放置一个$符 。

L 放置一个浮动本地货币符 。

. 显示小数点 。

, 显示千位指示符。

扩展资料:

在使用数据类型转换之前,同样的 SQL 在有的服务器不报错,主要是数据库的版本不同,当然该过配置的不算。

常见的两种类型转换错误如下:

ERROR: operator does not exist: integer = character varying。

ERROR: operator does not exist: character varying = integer。

字符串转数字,数字转字符串。这一点支持的不如 MySQL 好,当然 PostgreSQL 在新版本中也对这个问题做了改进!

第一种转换方式:使用 CAST 函数。

SELECT * FROM xttblog WHERE id = CAST(888 AS VARCHAR);

SELECT * FROM xttblog WHERE id = CAST('888' AS integer)。

第二种转换方式:使用“::”操作字段。

格式,字段 :: 要转换为的数据类型。

SELECT * FROM xttblog WHERE id = 888 :: VARCHAR;

SELECT * FROM xttblog WHERE id = '888' :: integer。

数据类型转换,虽然看起来很痛苦,但是如果用户的类型用的不对,查询效率会下降。所以,在设计的时候,字段的类型,一定要设计的合理,尤其是在关联表的时候。

MYSQL数据类型和格式怎么转换

public static String parseDateToStringNorm(Date date){

String s=null;

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

s=sdf.format(date);

return s;

}

可以把2014-04-10 10:13:56转换成字符串输出、、

mysql数据库中sql修改字段类型要怎么做

alter table 表名 modify 字段名 新类型

例如 alter table A modify age int;

mysql数据类型转换

数字转字符

mysql SELECT CONCAT ( CAST(1 as char) , '2') AS test;

+------+

| test |

+------+

| 12   |

+------+

1 row in set (0.00 sec)

mysql SELECT CONCAT ( Convert(1, char) , '2') AS test;

+------+

| test |

+------+

| 12   |

+------+

1 row in set (0.00 sec)

字符转数字

mysql SELECT CAST('1' as SIGNED) + 100 AS test;

+------+

| test |

+------+

|  101 |

+------+

1 row in set (0.00 sec)

mysql SELECT Convert('1' , SIGNED) + 100 AS test;

+------+

| test |

+------+

|  101 |

+------+

1 row in set (0.00 sec)

mysql中常见的数据类型

一:MySQL数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的

MySQL支持多种数据类型,大致可以分为三类:数值 日期/时间和字符串

二、数值类型

 1.整数类型

2.浮点数

如果希望保证值比较准确,推荐使用定点数数据类型。MySql中的浮点类型有float,double和real。他们定义方式为:FLOAT(M,D) 、 REAL(M,D) 、 DOUBLE PRECISION(M,D)。

FLOAT和DOUBLE中的M和D的取值默认都为0,即除了最大最小值,不限制位数。允许的值理论上是-1.7976931348623157E+308~-2.2250738585072014E-308、0和2.2250738585072014E-308~1.7976931348623157E+308。M、D范围如下:

(MySql5.7实测,与IEEE标准计算的实际是不同的,下面介绍):M取值范围为0~255。FLOAT只保证6位有效数字的准确性,所以FLOAT(M,D)中,M=6时,数字通常是准确的。如果M和D都有明确定义,其超出范围后的处理同decimal。

D取值范围为0~30,同时必须=M。double只保证16位有效数字的准确性,所以DOUBLE(M,D)中,M=16时,数字通常是准确的。如果M和D都有明确定义,其超出范围后的处理同decimal。

CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉,所以,我们在存储时字符串右边不能有空格,即使有,查询出来后也会被删除。在存储或检索过程中不进行大小写转换。

三、时间日期类型(5)

该“0”值如下:

请点击输入图片描述

四、各种类型占用的存储

1.数值类型

 

请点击输入图片描述

定点数的比较特殊,而且与具体版本也有关系,此处单独解释:

使用二进制格式将9个十进制(基于10)数压缩为4个字节来表示DECIMAL列值。每个值的整数和分数部分的存储分别确定。每个9位数的倍数需要4个字节,并且“剩余的”位需要4个字节的一部分。下表给出了超出位数的存储需求:

请点击输入图片描述

2.时间日期

请点击输入图片描述

从版本5.6.4开始,存储需求就有所改变,根据精度而定。不确定部分需要的存储如下:

请点击输入图片描述

比如,TIME(0), TIME(2), TIME(4), 和TIME(6) 分别使用3, 4, 5, 6 bytes。 

3.字符串

请点击输入图片描述

4.类型的选择

为了优化存储,在任何情况下均应使用最精确的类型。

例如,如果列的值的范围为从1到99999,若使用整数,则MEDIUMINT UNSIGNED是好的类型。在所有可以表示该列值的类型中,该类型使用的存储最少。

用精度为65位十进制数(基于10)对DECIMAL 列进行所有基本计算(+、-、*、/)。

使用双精度操作对DECIMAL值进行计算。如果准确度不是太重要或如果速度为最高优先级,DOUBLE类型即足够了。为了达到高精度,可以转换到保存在BIGINT中的定点类型。这样可以用64位整数进行所有计算,根据需要将结果转换回浮点值。

5.使用其他数据库的SQL语句

为了使用为其它数据库编写的SQL执行代码,MySQL按照下表所示对列类型进行映射。通过这些映射,可以很容易地从其它数据库引擎将表定义导入到MySQL中:

请点击输入图片描述

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。