SQL中的数字转换事宜

请问SQL中 tochar cast todate的区别是什么?感觉作用都一样耶 哪位能帮忙解释下

to_char:数值、日期 转 特定格式的字符串
to_date:字符串 转 日期
cast:任意类型 转 任意类型

不知道你用的是什么数据库,不同的数据库这几个函数有一点点区别,下面以oracle为例

  1. to_char可以将很多种类型的数据转换成指定格式的字符串,这里注意关键词 "多种类型" "指定格式"
    官方文档:
    TO_CHAR (bfile|blob) https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/TO_CHAR-bfile-blob.html#GUID-F12F3C5A-8E3C-4FE1-BD7D-4AC0B79EA5A5

img

  1. to_date,将字符串,根据指定的格式转换成日期,比如

    to_date('20220329174000','yyyymmddhh24miss'),
    to_date('2022-03-04','yyyy-mm-dd'),
    to_date('03-04-2022','mm-dd-yyyy'),
    to_date('04-03-2022','dd-mm-yyyy')
    

    注意2个参数格式要保持一致
    官方文档:

  2. cast,将某种类型转换成某种类型,和上面相比,这就很明显了,在某些情况下,当你不指定格式的时候,它是不知道该如何进行转换的,比如'03-04-2022' 究竟是3月4号还是4月3号呢?当然,cast其实也可以指定格式,但用起来比to_date 和to_char要麻烦一点
    官方文档: