研究了半天都没成功。sql不认这个日期格式啊。

解决方案 »

  1.   


    其实很简单,用户要求DATE类型字段存储的日期形式为 20190415这样的。这个格式sql不认啊。有办法设置吗?
      

  2.   

    --测试数据
    if not object_id(N'Tempdb..#T') is null
    drop table #T
    Go
    Create table #T([C_Date] Date)
    Insert #T
    select '20190415'
    Go
    --测试数据结束
    Select CONVERT(NVARCHAR(20),C_Date,112) AS C_Date from #T
      

  3.   

    那为何你要在数据库保存为date类型呢。直接保存成字符串要用的时候再转换
      

  4.   

    先用CONVERT 转换为date类型,然后入库。eg:CONVERT(DATE,'20190401')
      

  5.   

    USE tempdb
    GO
    IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
    GO
    CREATE TABLE t(
    d1 DATE NOT NULL, --插入时到这个列
    d2 AS replace(CONVERT(CHAR(10),d1,120),'-','') --查询用这个列
    )
    GO
    --插入时到用 d1列
    INSERT INTO t(d1) VALUES ('20190415')--查询时用 d2列
    SELECT * FROM t
    /*
    d1         d2
    2019-04-15 20190415
    */
      

  6.   

    加一个计算列,格式为yyyyMMdd的字符值,原始的还是保存为日期格式,你要哪个就用哪个,不要转来转去的