asp.net中,如何调用系统时间作参数传到数据库中(DataTime类型)

mysql数据库里的日期用timestamp还是datetime好

说白了,datetime和timestamp在数据库中各有各的神奇用途。
其复杂性在于它们处理时间的角度和方式不同。
我们先来说说最重要的事情。
datetime类型占用8 个字节,允许自定义,为空。
存储格式原始,不涉及时区,无法自动更新。
比如我们去年跑的项目,大概有3 000条数据,datetime字段的值都是在插入的时候自定义的。
还有一点是日期时间字段的值不能自动设置。
插入数据时必须手动指定或者使用now()变量获取当前系统时间。

我一开始以为时间戳字段和datetime类似,后来发现是错误的。
时间戳占用4 个字节,默认值为CURRENT_TIMESTAMP,以UTC格式存储,会进行时区转换。
等等,还有一件事,时间戳字段不能有自定义值。
插入记录时无需指定其值,因为它会自动更改为当前系统时间。
例如,当创建和修改记录时,时间戳值会自动更新。

所以,我认为datetime类型适合记录数据的原始创建时间,因为它不会随着记录的修改而改变。
时间戳类型适合记录数据的最后修改时间,因为它的值会自动更新。
很多人都没有注意到这一点,但我认为值得尝试,根据实际需要选择合适的类型。
说实话,这很令人困惑。
如果使用错误的类型,可能会导致数据不一致或处理复杂。

数据库里的string类型和页面的datatime比较

有许多方法可以预测蛋白质相互作用。

1 ) 系统发育谱:基于完全测序的基因组中功能相关基因存在或不存在的一致模式。
1 9 9 8 年,黄等人。
发现系统发育谱相似性可以预测 3 0% 的酵母相互作用。

2 )基因连续性:细菌中功能相关的基因紧密相连,形成操纵子。
1 9 9 7 年,泰勒等人。
证明该方法仅适用于约 2 0% 的细菌基因组相互作用。

3 ) 基因融合事件:基因融合表明物种进化中蛋白质的相互作用。
2 000 年,马尔科夫等人。
提出基因融合事件可以预测 4 0% 的脊椎动物相互作用。

4 )镜像树:根据功能相关蛋白的共同进化特征构建镜像树。
2 003 年,普鲁特等人。
构建了一个镜像树来准确预测 3 5 % 的蛋白质相互作用。

5 ) 相关突变:对物理接触蛋白残基变化的补偿。
1 9 9 6 年,Bhattacharyya 发现连锁突变可以预测 2 8 % 的酵母相互作用。

6 ) 序列信号相关性:序列特征信号在相互作用的蛋白质中重复出现。
2 005 年,博克等人。
通过序列信号相关性准确预测了 2 2 % 的蛋白质相互作用。

7 ) 保守的蛋白质-蛋白质相互作用:物种进化中相互作用蛋白质的保守性。
2 004 年,沃尔豪特等人。
发现内部学家预测了 3 7 % 的线虫相互作用。

8 )同源结构复合体:已知蛋白质复合体成员的三维结构彼此相互作用。
2 002 年,Kuritzay 等人。
预测 2 8 % 的蛋白质相互作用是通过同源结构进行的。

9 )进化速率相关性:交互次数与进化速率负相关。
2 001 年,弗雷泽等人。
发现具有许多连接的蛋白质降低了进化速度。

1 0)共振识别模型MRRM:基于蛋白质物理参数和信号分析。
2 006 年,RRM 模型准确预测了 2 5 % 的蛋白质相互作用。

1 1 )通过结构域相互作用进行预测:结构域是蛋白质的最小功能单元。
2 007 年,领域交互的预测准确率达到3 0%。

1 2 )基于蛋白质结构的预测:结构相似的蛋白质具有相似的功能。
2 008 年,拉普等人。
将结构预测的准确率提高到3 2 %。

不要相信单一方法,要结合多种预测。

使用JDBC插入值的时候,sqlserver数据库的timestamp类型应该怎么插入?

你的问题让我有点困惑。
时间戳、日期和时间确实需要仔细讨论。
1 0 年前,我在为一家创建 ERP 系统的公司开发数据库时学到了这些技能。

听你说,你的时间戳实际上与时间无关。
这只是一个柜台。
改变数据页时加1 它最初由 Microsoft 开发,用于帮助数据库恢复。
想一想。
如果您的系统崩溃,您可以使用这些计数器来查看哪些页面首先被修改,哪些页面稍后修改,从而使恢复更容易。

但是你的约会时间是严肃的时间。
年、月、日、时、分、秒都组合在一起。
你提到的场景是正确的。
当时,一个正在构建物流系统的客户坚持使用时间戳来存储时间戳。
结果当系统时间调整的时候,数据库里的时间戳全部乱了。
最后没办法,只能改成datetime了。

当询问插入时间时,告诉他们在使用 JDBC 时,应该使用 java.sql.Timestamp 而不是 java.util.Date。
从SQL Server的角度来看,这两者是不同的。
怎么写 爪哇 时间戳 st = new Timestamp(new java.util.Date().getTime()); ps.setTimestamp(2 , st);
没错。
当我当时编写代码时,每次插入日期时间时,我都必须将 java.util.Date 转换为时间戳。
否则会报类型不匹配错误。
您提到的使用 SimpleDateFormat 来转换和设置字符串的方法是有效的,但是您必须小心格式,因为代码看起来很多余。
否则,插入的时间可能不正确。

至于Hibernate,我在使用Hibernate的时候也很头疼。
你提到的映射可以这样完成:如果你在映射文件中将 java.sql.Timestamp 映射到数据库日期时间类型,Hibernate 会自动为你转换它。
您不必担心数据库中是否使用时间戳或日期和时间。
如果您在 Java 代码中使用时间戳,Hibernate 将为您处理。

这是一个例子。
假设您有一个 User 实体,请编写: 爪哇 @实体 @Table(名称=“用户”) 公共类用户{ @Id @GenerateValue(策略 = GenerationType.IDENTITY) private Long id;
@Column(name = "name") private String name;
@Column(name = "生日", type = "日期时间") 私人时间戳生日。
}
然后在映射文件中写入以下内容: XML <映射> <属性名称=“名称”列=“名称”类型=“字符串”/> <属性名称=“生日”列=“生日”类型=“时间戳”/> </类>
这样,Java当您在代码中使用时间戳时,Hibernate 会自动将它们转换为日期时间并将其存储在数据库中。
您不必担心数据库中的实际类型。
Hibernate 会处理一切。

但是,这取决于您的具体情况。
如果数据量较小且易于更改,也可以使用时间戳。
如果你有大量数据并且数据不断变化,那么使用 datetime 肯定更可靠。
在当时的物流系统中,当数据量增加时,时间戳计数器就会爆炸,最终一切都必须更改为日期和时间。

如果看你的场景,数据量不大,可以使用时间戳。
当您有大量需要经常更改的数据时,请使用日期时间。
这些都是我亲身经历过的陷阱,所以你应该仔细思考。