问题标签 [smalldatetime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
681 浏览

sql-server - 当我不需要存储秒数时,有什么理由不使用 SMALLDATETIME?

使用 SQL Server 2014:

我正在处理一些大型日志表,其中一列是CreateDatedatatype DateTime

有一些基于CreateDate列的索引。所有表都已包含大量行数。

问题 #1:是否有充分的理由不将所有CreateDate列转换为SMALLDATETIME类型?

问题 #2:是否有任何安全的 alter table table 语句可以将现有DATETIME数据转换为SMALLDATETIME没有任何错误?

问题 #3:当我使用ALTER TABLE时,基于 的现有索引会发生什么CreateDate

0 投票
4 回答
2329 浏览

sql - SQL Server 2014 以秒为单位插入/更新 smalldatetime 值

我对 SQL Server 中的 smalldatetime 数据类型有一个奇怪的问题。

我有一张非常基本的桌子

当我运行以下

我看到的值为2016-12-29 21:30:00

然后当我运行以下

我看到的值为2016-12-29 21:31:00

它不包括秒数。为什么是这样?

0 投票
2 回答
10579 浏览

sql-server - SQL Server smalldatetime 与 datetime2

我已经阅读了几篇关于在 SQL Server 中使用支持日期的数据类型的文章,但我仍然不确定要使用哪种数据。

所有人都说要使用新的强大的datetime2类型,但smalldatetime在内存方面仍然更方便(6字节对4字节)

这是我的范围:

以这种方式定义的表:

然后我有这些要求:

对于Date专栏,我需要精确到分钟。

在这张表中,我每天将存储多达100 万条记录,如此大的数据。

我的问题是:我必须使用smalldatetype每天为我节省 2 mb 的旧版本吗?

或者

我应该使用新的强大的datetime2数据类型吗?

谢谢

0 投票
1 回答
128 浏览

sql-server - 修改 XML - SMALLDATETIME

您好我正在 SQL 服务器中使用 XML 并尝试对 SMALLDATETIME 变量使用修改函数,但它没有给我想要的结果。

输出是。末尾附加了额外的“.000”。我怎样才能摆脱它们。

我希望上面的输出如下所示,因为这是我运行以下查询时返回的内容

[StartDate] 和 [EndDate] 的数据类型为“SMALLDATETIME”

我希望 XML 修改函数在没有 .000 的情况下返回相同的结果。

请建议。提前感谢饶

0 投票
1 回答
753 浏览

java - JDBC 编码到 sql server smalldatetime

我正在尝试执行一个存储过程,其中一个参数是 type smalldatetime。在过去,我总是将字段编码为字符串datetime2datetime效果很好。我正在使用Microsoft JDBC 驱动程序

尝试对 smalldatetime 参数使用字符串/nvarchar 时出现此错误。

查看它建议使用该类的微软文档。java.sql.Timestamp将我的 java 代码更改为Timestamp.valueOf(LocalDate.of(2099, 1, 1).atStartOfDay())我得到类似的错误。

任何帮助表示赞赏。

0 投票
1 回答
835 浏览

mysql - 将时间戳 (int) 转换为 smalldatetime (t-sql)

我有一个MySQL -Database 有几行。在那种环境中,我将当前时间存储为时间戳 ( int)。

现在我需要将我的数据从 MySQL 迁移到 T-SQL 数据库。我正在运行SQL-Server 2008

我检查了几种方法,但无法想出将我的 int 转换为smalldatetime格式的方法。

是否有内置功能?这甚至可以单独在一个声明中实现吗?我真的不想写一个 PHP 片段,它将时间戳转换为所需的格式。

提前致谢

0 投票
2 回答
89 浏览

sql - 在 SQL 上使用 smalldatetime 比较的 30 秒偏移量

在比较 SQL Server 中的日期(实际上是 smalldatetime)时,我遇到了一个奇怪的问题。在比较接近一天结束的日期时,似乎有 30 秒的偏移/偏差:

这是对的:

在此处输入图像描述

但这绝对是不正确的:

在此处输入图像描述

这里发生了什么?数学坏了吗?

0 投票
1 回答
1959 浏览

sql-server - 如何插入小日期时间

我是 sql server 的新手,因为这是我客户的要求。由于出现有关 smalldatatime 的错误,我无法插入。我的查询有什么问题?我已经尝试了一切,但仍然给我错误。

以下是我尝试过的事情:

我得到的错误:

消息 102,级别 15,状态 1,第 5 行“06”附近的语法不正确。

我得到的错误:

消息 206,级别 16,状态 2,行 2 操作数类型冲突:int 与日期不兼容

我得到的错误:

消息 102,级别 15,状态 1,第 5 行 'T06:' 附近的语法不正确

0 投票
1 回答
367 浏览

sql-server - smalldatetime 的 MSSQL PreparedStatement 返回错误结果

我的 mssql 数据库中有一个表,其中一列是 smalldatetime 数据类型。

smalldatetime 数据类型没有秒精度。根据其文档

ss 是两位数,范围从 00 到 59,表示秒。小于等于 29.998 秒的值向下舍入到最接近的分钟,大于等于 29.999 秒的值向上舍入到最接近的分钟。”

我有一个包含列 description(varchar) 和 startTime(smalldatetime) 的表 em_test。

如果我运行 query : select * from em_test where startTime between '2018-08-02 00:00:00' and '2018-08-02 11:59:59',将获得以下结果:

使用准备好的语句的相同查询返回不同的结果

我调试了 mssql-jdbc-6.4.0-jre7.jar 源代码,以了解为什么普通 sql 查询和 sql 准备语句返回的结果不同。下面是分析:

  1. 每当必须执行准备好的语句时,都会在内部创建一个运行时存储过程来包装查询。查询输入参数变为存储过程输入参数。
  2. 在形成准备好的语句时,我们将 smalldatetime 值设置为时间戳为 ps.setTimeStamp('2018-08-01 23:59:59')。
  3. 在形成运行时存储过程时,确定输入参数数据类型。TimeStamp映射到 mssql datetime2
  4. 因此,在 datetime2 的情况下,args'2018-08-02 00:00:00' and '2018-08-02 11:59:59'不会四舍五入,并且不会返回最后两个结果。
  5. 尝试用很少的日志模拟运行时过程: /li>

执行exec smalldatetimetest '2018-08-02 00:00:00','2018-08-02 23:59:59'打印以下日志:

我的理解是否正确,是否有任何解决方法来解决准备好的声明中的差异?

0 投票
1 回答
81 浏览

sql - 在保留时间的 SQL 存储过程中将 datetime 转换为 smalldatetime?

我有一个存储过程,它从数据库中获取数据,该数据库使用 datetime 类型的列(其中有一个有效的时间值),它更新了另一个恰好使用 smalldatetime 类型的数据库中的表。当尝试从 datetime 类型转换为 smalldatetime 类型时,我丢失了日期的时间部分。出于某种奇怪的原因,这个日期在我身上被四舍五入了。是否有某种特殊的从 datetime 到 smalldatetime 的转换语句可以保留该日期值的时间部分?