您好我相信这个问题在StackOverFlow上已经有100次了,但是我无法解决我的问题。这是让我麻烦的代码行
DatumSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Day + "." + ((DateTime)x.VrijemeSnimanja).Month + "." + ((DateTime)x.VrijemeSnimanja).Year : null,
请如何解决此问题。
完整代码
var result = resultVideoKlipBaseInfo.Select(x => new
{
x.IDvideoKlip,
x.LokacijaHDD,
x.NazivVideoKlipa,
x.Snimatelj.IDsnimatelj,
x.Snimatelj.Ime,
x.Snimatelj.Prezime,
x.Snimatelj.Storno,
DatumSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Day + "." + ((DateTime)x.VrijemeSnimanja).Month + "." + ((DateTime)x.VrijemeSnimanja).Year : null,
SatIMinutaSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Hour + ":" + ((DateTime)x.VrijemeSnimanja).Minute : null,
x.VrijemeSnimanja,
x.VrijemeTrajanjaKlipa
});
return Ok(result);
使用此代码,我从数据库中获取DateTime,并将其从DateTime格式转换为字符串格式。
我希望从2016-12-31 00:00:00.000这样的东西就像这样31.12.2016
谢谢大家阅读这个问题:)
答案 0 :(得分:1)
您不能使用ToString()在针对数据库的查询中进行格式化,因为没有等效的SQL方法,它会给您一个错误。 (以下是支持的字符串方法列表,BTW:https://msdn.microsoft.com/en-us/library/bb738534(v=vs.100).aspx)。
最简单的方法是返回原始值,然后在调用主查询后(通过调用ToList()或迭代结果)进行格式化。
以下是一些方法:
How can I convert DateTime to String in Linq Query?
Convert datetime to a formatted string inside a LINQ to SQL query
答案 1 :(得分:0)
我通过改变代码行来解决这个问题
DatumSnimanja = (x.VrijemeSnimanja != null) ? ((DateTime)x.VrijemeSnimanja).Day + "." + ((DateTime)x.VrijemeSnimanja).Month + "." + ((DateTime)x.VrijemeSnimanja).Year : null,
进入本次
DatumSnimanja = SqlFunctions.DateName("day", x.VrijemeSnimanja) + "." + SqlFunctions.DateName("month", x.VrijemeSnimanja) + "." + SqlFunctions.DateName("year", x.VrijemeSnimanja),
谢谢大家的帮助! :)