首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

日期比较有关问题求教

2013-12-13 
日期比较问题求教要做日期比较查询,数据库日期yymmdd hhss格式,如131203 0510,用了DateTime.ParseExact方

日期比较问题求教
要做日期比较查询,数据库日期yymmdd hhss格式,如131203 0510,用了DateTime.ParseExact方法报错,不知道还有什么好方法做啦日期比较有关问题求教,各位赐教,多谢日期比较有关问题求教
var obj = from fltdetail in db.cgs_fltdetail
               where DateTime.ParseExact(("20" + fltdetail.schdepdt.Trim()), str, format)  >= dateFrom &&
                       DateTime.ParseExact(("20" + fltdetail.schdepdt.Trim()), str, format)  <= dateTo 
                    
                          select new fltdetail
                          {
                              id = fltdetail.id,
                               fltnr = fltdetail.fltnr,
                              soflseqnr=fltdetail.soflseqnr,
                              schdepdt=fltdetail.schdepdt                             
                          };
[解决办法]
"数据库日期yymmdd hhss格式"
数据库存放的日期只是数据,你捞取的时候才转换成某些特定格式显示.
目测,这个数据库表栏位设置的是char或者varchar ,然后弄这格式存放的,奇葩做法,浪费空间,也浪费每次都要转换的效能,
并且这样转换会死翘翘,资料失真了. 请问如何判断 131203 0510 一定是 2013/12/03 05:10 而不是 1913/12/03 05:10 ?  
只能加特殊逻辑限定, 首两位 < XX的 前面加 20XX, 否则 加 19XX?

数据库日期栏位设计成这样,请让设计者买块豆腐撞死... ...

"不知道还有什么好方法做啦"

没啥好方法,请截取字符串拼凑.. ..

[解决办法]


            string input = "131203 0510";
            DateTime result = DateTime.ParseExact(input, "yyMMdd hhmm", null);

[解决办法]
首先你要交待清楚你所谓的"LINQ" 是 LINQ2SQL 还是 LINQ2EF

   where DateTime.ParseExact(("20" + fltdetail.schdepdt.Trim()), str, format)  >= dateFrom

========
EF:
   where EntityFunctions.DiffMinutes(EntityFunctions.TruncateTime(fltdetail.schdepdt), dateFrom) < 0

LINQ2SQL中,可尝试  

SqlFunctions.DateDiff
  

热点排行