选择SQL数据类型日期时间,日期,时间

时间:2014-01-22 12:34:23

标签: c# sql sql-server date datetime

我正在开发一个考勤系统(计算员工工作的小时数,并应用了许多班次规则)

我收到Clocked ON,Clocked OFF,(Date and Time)的原始交易,然后计算工作时间。

我正在寻找具有广泛时间计算经验的任何人的意见,或者我们称之为“最佳实践”,用于存储原始交易和计算时间(此领域的任何人都可以理解时间是一个独特的野兽)。

注意事项:将日期和时间存储为日期时间类型,或日期类型和时间类型分开,还要考虑导出到Excel的任何限制。

将日期存储为DateTime或日期类型和时间作为字符串,并编写一个函数以从字符串转换。

任何建议或指针或“留意GOTCHA”都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

不要将日期时间存储为字符串。很少(可能是零)实例,这是一个很好的设计。

存储为Datetime2(我的偏好)或2列,一个纯Date和一个纯Time。您可以将Datetime2列投射到日期和时间:

select DatePortion = cast(MyColumn as Date), TimePortion = cast(MyColumn as Time)

如果必须考虑时区,请使用datetimeoffset(7)