sql server2005的datetime A和B字段,A代表日期,B代表时间,
现有字符串 “31-5月-11”插入A,“0830”插入B,其中“31-5月-11”表示2011年5月31,0830表示8点30分

解决方案 »

  1.   

    starttime := formatdatetime('yyyy-MM-dd ', edQueryDate1.date) + formatdatetime('hh:nn:ss', edQueryTime1.Time);
      

  2.   

    --创建函数
    IF OBJECT_ID('f_formatdate') > 0
    DROP FUNCTION f_formatdate
    GO
    CREATE FUNCTION f_formatdate(
    @value VARCHAR(20),
    @type SMALLINT
    )RETURNS DATETIME 
    AS 
    BEGIN 
    DECLARE @r DATETIME
    IF @type=1
    BEGIN 
    SET @value=REPLACE(REPLACE(@value,'-','.'),'月','')
    SET @r=PARSENAME(@value,1)+'-'+PARSENAME(@value,2)+'-'+PARSENAME(@value,3)
    END 
    ELSE 
    SET @r=STUFF(@value,3,0,':')
    RETURN @r
    END
    GO
    --测试效果
    declare @a nvarchar(20),@b nvarchar(20)
    select @a=N'31-5月-11' ,@b='0830'DECLARE @t TABLE(d DATETIME)
    INSERT @t SELECT dbo.f_formatdate(@a,1)+dbo.f_formatdate(@b,2)SELECT * FROM @t
    /*
    d
    -----------------------
    2011-05-31 08:30:00.000(1 行受影响)
    */
      

  3.   


    DECLARE @date VARCHAR(10),@time VARCHAR(10)
    SET @date='31-5月-11'
    SET @time='0830'SELECT convert(datetime,REPLACE(@date,'月',''),5)+CONVERT(DATETIME,LEFT(@time,2)+':'+RIGHT(@time,2),108)/*-----------------------
    2011-05-31 08:30:00.000*/