Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 简洁的返回反向日期格式_C#_Sql_Orm_Dapper - Fatal编程技术网

C# 简洁的返回反向日期格式

C# 简洁的返回反向日期格式,c#,sql,orm,dapper,C#,Sql,Orm,Dapper,Dapper以不同于存储在数据库中的格式返回日期类型列 数据库中的格式-->2012-05-19 15:27:00.000 dapper返回-->19-05-2012 15:27:00.000 var l = this.db.Query<myObject>("select id, received from myTable where( received between @d1 and @d2)",

Dapper以不同于存储在数据库中的格式返回日期类型列

数据库中的格式-->2012-05-19 15:27:00.000

dapper返回-->19-05-2012 15:27:00.000

var l = this.db.Query<myObject>("select id, received from myTable where( received between @d1 and @d2)",
                                                 new { @d1 = d1, @d2 = d2, }).ToList();

string  d1 = 2011-01-18 00:00:00
string  d2 = 2014-07-18 23:59:59

 public class myObjectIs 
 {
    public string id { get; set; }
    public string received { get; set; }

 }
已接收-数据时间类型列

Dapper是否具有要返回的日期类型的预定义格式? 如果是,如何更改


谢谢。

问题似乎是您使用的是接收字符串,而不是日期时间。日期/时间没有格式,直到您实际强制它们成为字符串-此时它们不再是日期/时间。日期/时间只是一个数字

作为最后的努力,如果所有内置转换都已用尽,dapper将使用Convert.ChangeType在类型之间切换。这将导致在这种情况下使用常规ToString。如果您不希望这样,也不应该这样:将received声明为DateTime:

同样,从评论中可以看出:

d1和d2是字符串

不应该是,;它们也应该是DateTime:

或者至少,您应该在数据访问代码中解析它:

new { d1 = [someparse(d1)], @d2 = [someparse(d2)], }

其中,[someparse]可能涉及DateTime.Parse或DateTime.ParseExact

如果数据库中的数据类型是date,不要担心。c提供了日期格式化工具。使用一个。DateTime值没有格式。是您的程序以“格式”显示日期时间值。但是,如果收到的字段是日期,为什么要将其存储在字符串中?使用DateTime变量代替数据库中没有格式的DateTime;这是一个数字。您是否将其存储为字符串?或者作为日期时间?还有:d1和d2到底是什么?它们是绳子吗?还是约会时间?再说一遍:接收列的定义类型到底是什么?更新了我的qyestion:d1和d2是字符串,接收是数据时间
DateTime d1 = ..., d2 = ...
new { d1 = [someparse(d1)], @d2 = [someparse(d2)], }