Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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# 有没有办法表明DateTime对象只有日期值?_C# - Fatal编程技术网

C# 有没有办法表明DateTime对象只有日期值?

C# 有没有办法表明DateTime对象只有日期值?,c#,C#,在数据库中,有些字段是TimeStamp,有些字段是Date,这意味着有些字段同时接受日期和时间,有些字段只接受日期 我正在尝试编写一个帮助器类,该类可以通过数据对象的属性通过iternate生成SQL,并通过属性的数据类型生成适当的SQL 比如说,表“someDateTimeline”有时间戳字段“A_TimeStamp”和日期字段“A_Date” 然后,我的数据对象有两个属性,“public DateTime A_TimeStamp”和“public DateTime A_Date” 但因为

在数据库中,有些字段是TimeStamp,有些字段是Date,这意味着有些字段同时接受日期和时间,有些字段只接受日期

我正在尝试编写一个帮助器类,该类可以通过数据对象的属性通过iternate生成SQL,并通过属性的数据类型生成适当的SQL

比如说,表“someDateTimeline”有时间戳字段“A_TimeStamp”和日期字段“A_Date” 然后,我的数据对象有两个属性,“public DateTime A_TimeStamp”和“public DateTime A_Date”

但因为C#只有DateTime。。。我的程序无法区分是DateTime属性表示数据库字段是TimeStamp还是Date

我想知道是否有什么办法可以实现它

我只能想到…或者创建另一个具有DateTime参数的类来指示它是日期类型。。。或者检查时间是否为00:00:00


但这两条路似乎都是。。。。不那么聪明

您可以创建自己的类型(应该是不可变的)或使用属性。

在我看来,这更多地是与模式而不是特定值相关联的;i、 e.通常是所有日期与日期时间,而不是一列中的单个单元格

有了这个工作假设(可能不适合您的场景),我可能会使用元数据,例如(但不限于):


然后,您可以使用
属性.IsDefined(member,typeof(DateOnlyAttribute))
查看它是否为每个成员设置。

(假设您使用的是SQL Server)请确保区分时间戳、日期时间和日期。顺便说一句,时间戳数据类型是不透明的:它是由服务器生成的,不能作为日期数据读取。谢谢,太好了,这就是我想要做的。我现在学到了一些东西,再次感谢!
[DateOnly]
public DateTime Foo {get;set;}

...

[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property,
    AllowMultiple=false,Inherited=true)]
public class DateOnlyAttribute : Attribute {}