• SQL进阶-数据类型转换


    一般有这几种转换:

    image


    一、数值型与字符型的转化

    ###
    数值型转为字符型:
        65> '65'               select cast(65 as char);
        65> 'A'                select char(65);
        65.23 --> '65.23'        select cast(65.23 as char(10));
    
    
    ###
    字符型转为数值型:
        '65.23'> 65            select cast('65.23' as signed int);
        '65.23' --> 65.23        select cast('65.23' as decimal(5,2));
        'A'> 65                select ASCII('A');


    二、数值型与日期和时间型的转化

    ###
    数值型转为日期和时间型:
            20190903 --> 日期2019-09-03                                select cast(20190903 as date);
    
            815 --> 时间00:08:15                                       select cast(815 as time);
    
            0200815002356 --> 时间戳2020-08-15 00:23:56                select cast(20200815002356 as datetime);
        
            ##把Unix时间戳转为日期
            1628434346325 --> 2021-08-08 22:52:26                     select from_unixtime(1628434346325/1000, '%Y-%m-%d %H:%i:%s');
        
    
    ###
    日期时间型转为数值型:
        如:2019-09-03> 20190903                        select cast(current_date() as signed);
    
        如:14:04:10> 140410                            select cast(current_time() as signed);
    
        如:2019-09-03 14:04:10 --> 20190903140410        select cast(now() as signed);
    
        如:如:2019-09-03> 2019                         select year(current_date());
    
        如:14:04:10> 10                                select second(current_time);
    
        ##把日期类型转为Unix时间戳
        select unix_timestamp('2019-09-03 11:47:30');


    三、字符型与日期和时间型的转化

    ###
    字符型转换为日期时间型:
        ‘20190903--> 日期2019-09-03              select cast('20190903' as date);
    
        '2019-09-03' --> 日期2019-09-03            select cast('2019-09-03' as date);
    2109/09/03--> 日期2019-09-03            select cast('2019/09/03' as date);
    2019#09#03--> 日期2019-09-03            select cast('2019#09#03' as date);
    
        '00:08:15' --> 时间00:08:15                select cast('00:08:15' as time);
    
        '20210808225226' --> 时间戳2020-08-15 00:08:15         select CAST('20210808225226' AS DATETIME);
        
        '2021-08-08 22:52:26' --> 时间戳2021-08-08 22:52:26    select cast('2021-08-08 22:52:26' as datetime);
        
    
    
    ###
    日期时间型转为字符型:
        如:日期2019-09-03> '20190903'                select DATE_FORMAT(CURRENT_DATE(),'%Y%m%d')
    
        如:日期2019-09-03 --> '2019-09-03'             select CAST(CURRENT_DATE() AS DATE);
                                                      select DATE_FORMAT(CURRENT_DATE(),'%Y-%m-%d');
    
        如:日期2020-08-15' --> '2020-08'              select DATE_FORMAT(CURRENT_DATE(),'%Y-%m');
    
        时间00:08:15 --> '00:08:15'                    select DATE_FORMAT(NOW(),'%H:%i:%s');
                                                      select CAST(CURRENT_TIME() AS CHAR);
    
        时间戳2020-08-15 00:08:15 –> '20210808225226'          select DATE_FORMAT(NOW(),'%Y%m%d%H%i%s')
    
        时间戳2021-08-08 22:52:26 --> '2021-08-08 22:52:26'    select CAST(NOW() AS CHAR);
                                                              select DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s');
    
        日期2020-08-15 --> Thursday                select DAYNAME(CURRENT_DATE());
    
        日期2020-08-15 --> August                select MONTHNAME(CURRENT_DATE());


    image

  • 相关阅读:
    CentOS
    Docker
    Chart的简单使用
    DataGridView中间插入数据行
    获取每个月的固定的第n个星期几
    设置只能开启一个程序实例
    DataContext与实体类
    Attribute
    Delegate
    Event
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/11452917.html
Copyright © 2020-2023  润新知