mysq字段类型转换

1. 将字符的数字转成数字,比如'0'转成0可以直接用加法来实现
例如:将pony表中的d 进行排序,可d的定义为varchar,可以这样解决
select * from pony order by (d+0)
2. 在进行ifnull处理时,比如 ifnull(a/b,'0') 这样就会导致 a/b成了字符串,因此需要把'0'改成0,即可解决此困扰
3. 比较数字和varchar时,比如a=11,b="11ddddd";
则 select 11="11ddddd"相等
若绝对比较可以这样:
select binary 11 =binary "11ddddd"
4. 字符集转换 :   CONVERT(xxx  USING   gb2312)
类型转换和SQL Server一样,就是类型参数有点点不同  : CAST(xxx  AS   类型)  ,   CONVERT(xxx,类型),类型必须用下列的类型:
可用的类型:    
  二进制,同带binary前缀的效果 : BINARY    
  字符型,可带参数 : CHAR()     
  日期 : DATE     
  时间: TIME     
  日期时间型 : DATETIME     
  浮点数 : DECIMAL      
  整数 : SIGNED     
  无符号整数 : UNSIGNED
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中,类型有多种,包括DATETIME、DATE、TIME、TIMESTAMP等,不同类型在Java中的转换方式也略有不同。 1. DATETIME类型 在Java中,可以使用java.sql.Timestamp类型来表示DATETIME类型。在通过JDBC从MySQL中读取DATETIME类型的值,可以使用ResultSet类的getTimestamp方法获取java.sql.Timestamp类型的值: ```java ResultSet rs = stmt.executeQuery("SELECT datetime_column FROM table"); while (rs.next()) { Timestamp datetime = rs.getTimestamp("datetime_column"); // ... } ``` 在将java.sql.Timestamp类型的值写入到MySQL的DATETIME类型字段,可以使用PreparedStatement类的setTimestamp方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (datetime_column) VALUES (?)"); Timestamp datetime = new Timestamp(System.currentTimeMillis()); pstmt.setTimestamp(1, datetime); pstmt.executeUpdate(); ``` 2. DATE类型 在Java中,可以使用java.sql.Date类型来表示DATE类型。在通过JDBC从MySQL中读取DATE类型的值,可以使用ResultSet类的getDate方法获取java.sql.Date类型的值: ```java ResultSet rs = stmt.executeQuery("SELECT date_column FROM table"); while (rs.next()) { Date date = rs.getDate("date_column"); // ... } ``` 在将java.sql.Date类型的值写入到MySQL的DATE类型字段,可以使用PreparedStatement类的setDate方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (date_column) VALUES (?)"); Date date = new Date(System.currentTimeMillis()); pstmt.setDate(1, date); pstmt.executeUpdate(); ``` 3. TIME类型 在Java中,可以使用java.sql.Time类型来表示TIME类型。在通过JDBC从MySQL中读取TIME类型的值,可以使用ResultSet类的getTime方法获取java.sql.Time类型的值: ```java ResultSet rs = stmt.executeQuery("SELECT time_column FROM table"); while (rs.next()) { Time time = rs.getTime("time_column"); // ... } ``` 在将java.sql.Time类型的值写入到MySQL的TIME类型字段,可以使用PreparedStatement类的setTime方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (time_column) VALUES (?)"); Time time = new Time(System.currentTimeMillis()); pstmt.setTime(1, time); pstmt.executeUpdate(); ``` 4. TIMESTAMP类型 在Java中,可以使用java.sql.Timestamp类型来表示TIMESTAMP类型。在通过JDBC从MySQL中读取TIMESTAMP类型的值,可以使用ResultSet类的getTimestamp方法获取java.sql.Timestamp类型的值: ```java ResultSet rs = stmt.executeQuery("SELECT timestamp_column FROM table"); while (rs.next()) { Timestamp timestamp = rs.getTimestamp("timestamp_column"); // ... } ``` 在将java.sql.Timestamp类型的值写入到MySQL的TIMESTAMP类型字段,可以使用PreparedStatement类的setTimestamp方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (timestamp_column) VALUES (?)"); Timestamp timestamp = new Timestamp(System.currentTimeMillis()); pstmt.setTimestamp(1, timestamp); pstmt.executeUpdate(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值