这个问题是不是应该在Asp.net栏目中问啊.

解决方案 »

  1.   

    如果取系統的日期,則declare @year numeric(4),@month numeric(2)
    set @year=2003
    set @month=8select 日期=cast(convert(varchar(4),@year)+'-'+convert(varchar(2),@month)
    +'-'+convert(varchar(2),day(getdate())) as datetime)
      

  2.   

    比如说,某人的参加工作时间是1993年3月,具体是几号并不重要,或者用户
    并不记得是几号.用户输入数据时只输入年-月,但要存到一个DateTime的字段
    里.然后在页面显示时也只显示1993-3
      

  3.   

    那也没有问题啊,你可以在查询分析器中试试:
    declare @dt varchar(10)
    set @dt='2004-08'  --输入的
    create table tb (dt datetime) --建一表,做测试
    insert tb values(convert(datetime,@dt+'-1')) ---输入的串加一个'-1',随便哪天都行。
    select * from tb  ---数据表中存储的结果
    select 日期=convert(varchar(7),dt,120) from tb  ---前台你需要的 年-月
    drop table tb
    ----结果:(所影响的行数为 1 行)dt                                                     
    ------------------------------------------------------ 
    2004-08-01 00:00:00.000(所影响的行数为 1 行)日期      
    ------- 
    2004-08(所影响的行数为 1 行)
      

  4.   

    declare @year int,@month int,@day int,@date datetime
    select @year=2004, @month=8,@day=day(getdate())SET DATEFORMAT ymd
    set @date=cast(@year as varchar(4))+'/'+cast(@month as varchar(2))+'/'
              +cast(@day  as varchar(2))
    select @date