我想在我的表格中有一个日期和时间列。拥有这两列的主要目的是能够返回如下查询结果:
November 2011
内完成的治疗次数。00:01
和08:00
小时之间轮班工作的人数。我有两个表,其中包含以下属性(其中包括):
Shift(day, month, year)
Treatment(start_time, date)
最初我认为使用date
数据类型来声明每个day/month/year/date
变量都可以完成这项工作。但这似乎没有成功。我应该分别对int
,varchar
和int
分别使用day
,month
和year
吗?此外,由于date
变量没有组件部分,date
数据类型在这里工作吗?最后,如果我对timestamp
属性使用start_time
数据类型,那么我应该在插入列中输入的值应该是08:00:00?
我正在使用SQL Server 2014
。
感谢您的帮助。
答案 0 :(得分:0)
AFAIK最好使用DateTime类型的一列而不是分别保存日期和时间的两列。
您也可以通过将日期或时间强制转换为相应的类型来查询此列:
DECLARE @ChangeDateTime AS DATETIME = '2012-12-09 16:07:43.937'
SELECT CAST(@ChangeDateTime AS DATE) AS [ChangeDate],
CAST(@ChangeDateTime AS TIME) AS [ChangeTime]
结果:
ChangeDate ChangeTime
---------- ----------------
2012-12-09 16:07:43.9370000