一个简单的时间字段格式转换,以前写过,搞忘了,麻烦还记得的说一下,谢谢。string b1 = dt.ToShortDateString().ToString();//2010-1-12
string sql = "SELECT count(*) as iCount from kaoqin where x_time = '" + b1 + "'"---------------------------------
x_time 字段是getdate()
如何将 x_time 字段转换为ShortDateString类型,我想用现在的时间和这个数据库里的时间比较,看有没有符合今天的,有的话,就执行相关操作。
但要求,只比较如格式2010-1-12不知如何写?

解决方案 »

  1.   

    string sql = "SELECT count(*) as iCount from kaoqin where CONVERT(varchar(100), x_time, 23) = '" + b1 + "'"
     
      

  2.   

    http://51xingfu.blog.51cto.com/219185/58722
      

  3.   

    where datediff(day,starttime,endtime)<2
      

  4.   

    符合今天的就是
    datediff(day,starttime,endtime)=0
      

  5.   

    string b1 = dt.ToShortDateString().ToString();//2010-1-12
    string sql = "SELECT count(*) as iCount from kaoqin where datediff(d,getdate(),
    '" + b1 + "')=0";
      

  6.   

    CONVERT(varchar(100), x_time, 23) = '" + b1 + "'"
     
    我记得是这么写,但我看我数据库有这个数据,为什么统计这个count(*) as iCount 
    iCount值还是为零呢?
      

  7.   

    我知道问题出在哪儿了,
    DateTime dt = DateTime.Now;
    int a1 = System.Convert.ToInt32(dt.Hour.ToString());
    string b1 = dt.ToShortDateString().ToString();//2010-1-12
    b1读出的格式为:2010-1-12
    CONVERT(varchar(100), x_time, 23),这个读出来的是2010-01-12
    当然不一样了
      

  8.   


    string b1 = dt.ToString("YYYY-MM-DD");//2010-01-12
      

  9.   

    1. 基本上永远不用 ToShortDateString()   忘记这个方法吧2. 如果要处理  就要彻底统一两方面都要处理。   获取数据toString("YYYY-MM-DD");  数据表里  convert(char(10),时间字段,120)     这两个进行对比; 3. 用datediff 函数  可以忽略格式
      

  10.   

    Convert.ToDateTime(dt).ToString("yyyy-MM-dd");
      

  11.   


     DateTime.Now.ToString("yyyy-MM-dd");  //我的怎么可以 
      

  12.   

    Label1.Text = DateTime.Now.ToString("yyyy-MM-dd");我也是这样写的,但得到的是2011-1-21
      

  13.   

    可以了。
    我用的是vs2008,我重新生成项目才可以。
    vs2008经常会出现这种奇怪问题。