zoukankan      html  css  js  c++  java
  • 用sql查询时间段(报错信息:The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value)

    有时候我们经常在页面里把时间参数直接转换为string类型,然后拼接成sql 

    eg:select * from tb_eng_News where 1=1  and end_dte>= @end_dte(@end_dte是一个日期格式的字符串变量)

    像这样的写法可能会出现错误

    原因是因为你系统的时间可能和数据库存储的时间格式不一样 select * from tb_eng_News where 1=1  and end_dte>= '18/02/2014 0:00:00',很明显这样有可能是无法匹配的,因为数据库不认识是m/d/y还是d/m/y

    报错信息:The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value

    解决的办法是:

    1.修改系统的日期时间:在控制面板->区域和语言选项->区域选项->自定义->日期,然后设置需要的时间格式(显然这个换成另一台服务器时这个可能会出错,不过这样比较简单)

    2.将时间格式化:eg:select * from tb_eng_News where 1=1  and end_dte>= @end_dte(@end_dte是一个日期格式的字符串变量),这个时候我们要在sql的前面加上SET DATEFORMAT MDY,mdy是时间格式:月日年,就像是:

    SET DATEFORMAT MDY

     select * from tb_eng_News where 1=1  and end_dte>= @end_dte

    3.我们在转入参数时最好将日期格式化 eg:yyyy-MM-dd;

    4.使用SqlParameter,这种我比较喜欢,因为传入的是时间类型,可以解决后顾之忧(推荐)

       SqlParameter []aParam = new SqlParameter[1];
       aParamet[0] = new SqlParameter("@end_Data",DateTime.Now);

  • 相关阅读:
    Linux内存管理2---段机制
    XCOJ 1102 (树形DP+背包)
    ZOJ 3805 (树形DP)
    Ural 1018 (树形DP+背包+优化)
    POJ 2342 (树形DP)
    HDU 2612 (BFS搜索+多终点)
    POJ 1947 (树形DP+背包)
    HDU 1561 (树形DP+背包)
    HDU 1045 (DFS搜索)
    HDU 5067 (状态压缩DP+TSP)
  • 原文地址:https://www.cnblogs.com/wisexie/p/3554636.html
Copyright © 2011-2022 走看看