SQL中VARCHAE数据类型转换问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中VARCHAE数据类型转换问题相关的知识,希望对你有一定的参考价值。

用哪个函数可以实现输出的数据显示如上图所示呢。

参考技术A

    declare @Str varchar(255)

    declare @StrNew varchar(50)

    set @Str=convert(datetime,'2013-11-2')    --

    set @StrNew=convert(varchar(50),year(@Str))+(case when month(@Str)<10 then '0'+convert(varchar(50),month(@Str)) else convert(varchar(50),month(@Str)) end)+(case when day(@Str)<10 then '0'+convert(varchar(50),day(@Str)) else convert(varchar(50),day(@Str)) end)

说明:

    把日期转换成日期格式,然后分别取出年月日来拼接字符串

    当月.日小于10,则补零

参考技术B select to_char(to_date('2013-11-2','yyyy-mm-dd'),'yyyymmdd') from dual;

参考技术C select replace('2013-11-2','-','')
是想要这样?
不过这样的结果是
2013112;
关于你的2前面的0还需要处理,,
因不知道你具体是不想要这样,暂不做处理追问

2013-8-2 处理后要为:20130802才好。

追答

是sqlserver数据库mysql,还是什么?如果是sqlserver

直接这样,,,,

CREATE TABLE test(id VARCHAR(20))
INSERT INTO dbo.test
        ( id )
SELECT '2013-11-2'
UNION ALL
SELECT '2013-8-2'


SELECT REPLACE(CONVERT(VARCHAR(10),CAST(id AS DATETIME),120),'-','')
FROM test

结果:

20131102

20130802

本回答被提问者和网友采纳
参考技术D 使用to_date转换

sql语句中数据类型转换怎么写

如下:
表一trxorder 字段id(bigint),status,requestid(varchar)
表二payment 字段id(bigint),authstatus,trxorder_id(bigint)(trxorder_id是参考trxorder表的id的外键)
表三manual 字段status, eventkey(varchar)(eventkey是参考payment表的id的外键)!
参考技术A sql语句中数据类型转换怎么写
oracle: to_number(str) sqlserver: convert(int,字段名)
参考技术B SQL server CONVERT

以上是关于SQL中VARCHAE数据类型转换问题的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句类型转换问题

SQL的类型转换

String 转换成精确到秒的 sql.Date类型问题

SQL SERVER中强制类型转换cast和convert的区别

在sql中如何将日期类型转换成文本类型,例如2012-09-12 转变成 20120912

如何把ORACLE数据库BLOB类型转换成SQL的TEXT类型。