This question already has answers here:
How do I represent a time only value in .NET?
(8个答案)
how to use sql server time data type in .net application?
(5个答案)
上个月关闭。
我正在学习并且仍然习惯使用asp.net-mvc和C#,以及SQL的“ T”版本。
我有一个数据库,在其中我在
但是在我的
但是使用该数据类型可以使它在View中输入
我已经搜索了文档,并在谷歌上搜索了示例,但似乎找不到与我正在做的事情足够相似的示例,以至于可以推断出一些东西。
这是用于创建表并为其设定种子的
这是模型类的相关部分:
只要在
如何在
(8个答案)
how to use sql server time data type in .net application?
(5个答案)
上个月关闭。
我正在学习并且仍然习惯使用asp.net-mvc和C#,以及SQL的“ T”版本。
我有一个数据库,在其中我在
DueDate
文件中创建了一个字段Date
,数据类型为DueTime
...,另一个字段为Time
,数据类型为.sql
,以创建表并使用一些示例条目将其作为种子。但是在我的
model.cs
中,在C#中,似乎在C#中只有DateTime
数据类型?但是使用该数据类型可以使它在View中输入
DueTime
字段的日期和时间,这既不是我想要的,也不方便用户使用。我已经搜索了文档,并在谷歌上搜索了示例,但似乎找不到与我正在做的事情足够相似的示例,以至于可以推断出一些东西。
这是用于创建表并为其设定种子的
.sql
文件:CREATE TABLE [dbo].[Homeworks] /* use plural db name */
(
[ID] INT IDENTITY (1,1) NOT NULL,
[Priority] NVARCHAR(18) NOT NULL,
[DueDate] DATE NOT NULL,
[DueTime] TIME(0) NOT NULL,
[Dept] NVARCHAR(4) NOT NULL,
[Course] NVARCHAR(9) NOT NULL,
[Assignment] NVARCHAR(64) NOT NULL,
[Notes] NTEXT NOT NULL,
CONSTRAINT [PK_dbo.Homeworks] PRIMARY KEY CLUSTERED ([ID] ASC)
);
INSERT INTO [dbo].[Homeworks] (Priority, DueDate, DueTime, Dept, Course, Assignment, Notes) VALUES
('super-important','2019-11-11','11:59:00', 'CS', '123', 'Questions/Answers', 'best to read ch 5 first'),
('meh','2019-11-18','11:59:00','CS','234','write helloWorld program','find out how to write a helloWorld program'),
('important','2019-11-13','11:59:00','MTH','123','chapter 3 problems','do the odd-numbered ones'),
('regular','2019-11-15','11:59:00','WR','101','write essay paper','figure out something to write an essay about'),
('notes','2019-11-14','11:59:00','CS','189','do up notes over chapters 1-5','make sure you know that crap for the mid-term')
GO
这是模型类的相关部分:
[Required]
[DisplayName("Due Date")]
public DateTime DueDate { get; set; }
//------------------------------------------------------------
[DisplayName("Due Time"), Required]
public DateTime DueTime { get; set; }
只要在
localhost
字段中输入完整日期,这一切都可以正常运行,就像在time
上运行页面时可以正常工作一样。但是输入会按原样进入数据库。如何在
time
字段中获取仅接受时间的表格?我要使用哪种数据类型? 最佳答案
.Net框架没有内置的Time
类型,也没有内置的Date
类型。
它确实具有TimeSpan
,但与Time
不同-c#TimeSpan
实际上是持续时间-两个时间点之间的时间长度-而SQL Server的Time
数据类型实际上是时间的一天-也是documented这样的:
定义一天中的时间。时间没有时区意识,基于24小时制。
它的范围是从00:00:00.0000000
到23:59:59.9999999
。
.Net的TimeSpan
结构记录为
表示时间间隔。
它的范围从MinValue
到具有MaxValue
字段,-10675199.02:48:05.4775808
至10675199.02:48:05.4775807
。
综上所述,由于.Net框架没有TimeOfDay
数据类型,因此它使用TimeSpan
映射到SQL Server的Time
数据类型,您可以随意使用该数据类型来表示时间。日期(这也是DateTime
的struct Time
属性的类型,这意味着.Net框架本身使用此类型表示一天中的时间。
如果您想要.Net的替代日期时间api,则应签出NodaTime
。
关于c# - T-SQL具有“时间”数据类型-C#是否仅具有“时间”而不是“日期时间”数据类型? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58671229/