首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Linq表达式中将字符串转换为TimeSpan?

如何在Linq表达式中将字符串转换为TimeSpan?
EN

Stack Overflow用户
提问于 2016-04-12 14:30:13
回答 2查看 2.2K关注 0票数 2

我首先使用C# MVC EF代码,其中我有一个Linq表达式,如下所示:

代码语言:javascript
运行
复制
var data = new SchedulerAjaxData(new GTOpel().mxes.Select(e => new 
    { 
        id = e.nkeyid, 
        text = e.texto, 
        start_date = e.data, 
        end_date = e.data 
    })
);

我现在的问题是:我有一个DateTime字段(数据),它有我想要的日期,但它使用默认时间(00:00:00.000)。

我在这个字段中得到的格式类似于“YYYY dd HH:mm:ss.fff”。

我有一个时间字段( hinicio ),它是一个字符串,而不是DateTime/TimeSpan -我想将hinicio添加到数据中--让我们给hinicio提供一个示例值,比如"13:00",因为这是DB用于字符串的格式(“HH:mm”)。

最后,这就是我想要得到的:"2016-01-01 13:00:00.000“

既然我们讨论的是一个DateTime和一个字符串,那么在我前面提到的IQueryable表达式中是否有一种合理的方法来格式化这两个值?

如果不是,在选择方法上使用值之前,我应该如何格式化我的值?

更新/详细信息:

对于那些可能对此感到好奇的人来说,对Scheduler库来说,变量id、text、start_date和end_date是必需的,所以我可以看到我已经得到的事件。

这个Scheduler是我正在使用的模板,现在我尝试用我的DB来实现它。

更多信息请访问:http://docs.dhtmlx.com/scheduler/

提前感谢并致以最良好的问候,

格拉尼维奇

EN

Stack Overflow用户

回答已采纳

发布于 2016-04-12 14:39:59

您必须将hinicio值转换为TimeSpan,然后将其添加到data中。

要在Linq中对实体执行此操作,必须使用DbFunctionsSqlFunctions类。

如果hinicio看起来像hh:mm,那么查询应该如下所示:

代码语言:javascript
运行
复制
var data = new SchedulerAjaxData(new GTOpel().mxes.Select(e => new 
{
    ...
    start_date = DbFunctions.AddMinutes(e.data, 
                     DbFunctions.DiffMinutes(TimeSpan.Zero, 
                                             DbFunctions.CreateTime(SqlFunctions.DatePart("hh", e.hinicio),
                                                                    SqlFunctions.DatePart("mi", e.hinicio), 
                                                                    0.0))) 
}));
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36576329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档