怎么设置sql server时间类型datetime的默认值的呢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么设置sql server时间类型datetime的默认值的呢相关的知识,希望对你有一定的参考价值。
1)如上图,在表设计器中,填入设置DateTime类型字段的“默认值或绑定"。上图设置的是一个固定时间:2016年4月15日
00:00:00
2)在相同的地方,填入
getdate()
,可以将默认值设置为当前日期和时间 参考技术A CreateDate datetime not null default getdate()
字段名CreateDate,类型datetime,不允许为空,默认值getdate()服务器当前时间。本回答被提问者和网友采纳 参考技术B 用default 设置默认值
为啥 SQL Server DATETIME 类型可以节省 1/300 秒的时间?
【中文标题】为啥 SQL Server DATETIME 类型可以节省 1/300 秒的时间?【英文标题】:Why SQL Server DATETIME type saves time in ticks of 1/300 of a sec?为什么 SQL Server DATETIME 类型可以节省 1/300 秒的时间? 【发布时间】:2014-03-16 13:04:04 【问题描述】:SQLServer 日期时间格式存储为 8 个字节,其中前四个字节是自 1900 年 1 月 1 日以来的天数,其他四个字节是自午夜以来的滴答数。刻度是秒的 1/300。
我想知道为什么会这样? 1/300 是从哪里来的?这一定有一些历史原因。
【问题讨论】:
我经常想知道为什么最接近午夜的时间是 23:59:59.997。 @Jonathan - 这通常表明您在处理日期时间数据并想要一整天的价值时应该使用专有端点(即第二天的午夜) - 如果您已经硬编码997
或使用其他技巧来计算它,如果您转移到 datetime2
,则必须更改所有代码。
这可以追溯到 Sybase 时代。最大 32 位有符号整数将允许高达每秒 24,855 个滴答的精度,所以我也想知道这一点。
【参考方案1】:
是的,有一个历史原因:UNIX!
有关详细信息,请阅读 Joe Celko 撰写的 excelent article 。
这是您要查找的详细信息:
T-SQL 中的时态数据 曾经是UNIX系统时钟滴答的囚徒,只能去 舍入误差到小数点后三位秒。新的 ANSI/ISO 数据 类型可以精确到小数点后七秒,具有真实的 DATE 和 TIME 数据 类型。由于它们是新的,大多数程序员还没有使用它们。
【讨论】:
他是说 Unix 每秒也只有 300 个滴答吗?或者只是两者都使用刻度的概念? 这是关于第一个 unix 内部时钟的旧分辨率 - 与它们的计时方式无关,只是它们的时间分辨率如何。 Sql server 有相当多的老 unix (sybase) 祖先,只检查时间戳列,根本没有时间戳;)以上是关于怎么设置sql server时间类型datetime的默认值的呢的主要内容,如果未能解决你的问题,请参考以下文章
怎么设置sql server时间类型datetime的默认值的呢
asp.net查询数据库时提示使用的sql server版本不支持数据类型date