像这样的一列,中间有空格,属性为text,想要把日期和时间分成两列存放,应该怎么操作,求助大神

解决方案 »

  1.   

    USE tempdb
    GO
    IF OBJECT_ID('t1') IS NOT NULL DROP TABLE t1
    IF OBJECT_ID('t2') IS NOT NULL DROP TABLE t2
    GO
    CREATE TABLE t1(
    d DATETIME
    )
    GO
    SET NOCOUNT ON
    INSERT INTO t1 VALUES ('2014-03-01 00:00:00')
    INSERT INTO t1 VALUES ('2014-03-01 00:01:00')
    INSERT INTO t1 VALUES ('2014-03-01 00:02:00')
    --以上为测试数据--
    SELECT 
    CONVERT(CHAR(10),d,120) AS [日期]
    ,CONVERT(CHAR(8),d,108) AS [时间] 
    FROM t1
      

  2.   

    大佬,,,我没太看懂,刚开始学习,前面那部分是创建表的吗?那我是不是直接用SELECT以下的部分
      

  3.   


    是的, 前面的是创建测试数据, 方便你对照。你参照着 select 那部分写就可以了。
      

  4.   

    数据量可以在加两列,时间,left(时间,10),right(时间,10)
    或者用函数 dbo.func_splitstring
    效果是这样 
      

  5.   


    是的, 前面的是创建测试数据, 方便你对照。你参照着 select 那部分写就可以了。我把这一列的属性改成datatime 然后用这个函数,一直不成功
      

  6.   

    select date(时间) as rq,time(时间) as sj  from 表
      

  7.   

    你用的数据库, 根本不是 SQL Server, 应该是 MySQL.
    改成下面的:
    DROP TABLE if exists t1;
    CREATE TABLE t1(
    d DATETIME
    );
    INSERT INTO t1 VALUES ('2014-03-01 00:00:00');
    INSERT INTO t1 VALUES ('2014-03-01 00:01:00');
    INSERT INTO t1 VALUES ('2014-03-01 00:02:00');
    SELECT 
    DATE_FORMAT(d,'%Y-%m-%d') AS `日期`
    ,DATE_FORMAT(d,'%H-%i-%s') AS `时间` 
    FROM t1