问题标签 [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.
sql - SQL Server 2008:日期转换问题
我目前正在更新我们的数据库系统,其中日期字段位于 nvarchar (20) 中,但是我已将其更改为 smalldatetime。但这样做时,某些日期会从11/12/2014-------> 12/11/2014
有什么办法可以改变吗?
java - 如何将“01/30/2018 02:29:23 PM”转换为 smalldatetime 格式?我正在为我的应用程序使用 MSSQL,并且该列是 smalldatetime 格式
我正在尝试将格式为“01/02/2018 02:48:04 PM”的字符串转换为 smalldatetime 格式以插入 MS SQL。
但是我意识到当我执行以下代码时
我得到了一些垃圾价值 2018-01-02T15:58:04
这导致 localDate.getNano() 为 0
sql - 获取日期范围
我想获取两个给定日期之间的所有信息,如何在 SQL Server 中获取数据类型为“smalldatetime”的日期范围
我希望获得从开始日期到结束日期的所有信息
java - 使用 PreparedStatement 读取“smalldatetime”列时返回额外的“.0”
我有SQL Server
一个列类型的表,smalldatetime
我PreparedStatement
用来读/写表中的数据。例如我的桌子是这样的:
我正在阅读该专栏date
:
我.0
在日期结束时得到一个额外的:
为什么会这样?
sql - 触发日期转换失败
我有一个触发器对不同的表执行 INSERT_AFTER。目标表是要发送到另一家公司的数据的临时表。在我们这边的数据库中,日期是smalldatetime。另一个公司需要这种拆分为日期字段和时间字段。也没有进入临时表。我尝试了几种不同的方法,包括 CAST 和 CONVERT 都没有成功。
相关的SQL如下:
此触发器跟随另一个 INSERT_AFTER 触发器对其他表执行相同的操作。第一个触发器作为“第一个”触发,有问题的触发器作为最后一个触发。
第二个触发器还有另一个字段失败,它是由第一个触发器创建的,作为从另一家公司收到的确认。我不认为这些是相关的,但鉴于我也没有弄清楚,我不能确定。
我需要知道什么可能会失败或我需要更改 SQL 中的什么。我已经放下触发器并重新创建它,但这没有任何帮助,实际上给了我一个我尚未解决的错误。
sql - T-sql SmallDateTime 添加时间过去的日期 23:30
T-sql SmallDateTime 添加时间过去的日期 23:30
sql-server - 将 31.12.2099 分配给 DBTimeStamp 类型的 OLE DB 参数在更改为 MSOLEDBSQL 后不起作用
要使用“SQL Server 的 OLE DB 驱动程序”,我将连接字符串中的提供程序从应Provider=SQLOLEDB.1
更改Provider=MSOLEDBSQL
为 。现在,如果我将日期 31.12.2099 分配给 DBTimeStamp 类型的 OLE DB 参数,则会收到错误“日期格式无效”:
cmd.Parameters.Add("@ValidFrom", OleDbType.DBTimeStamp).Value = new DateTime(2099, 12, 31);
我发现 OleDbType.DBTimeStamp (DBTYPE_DBTIMESTAMP) 映射到 SQL SERVER 数据类型smalldatetime,其范围从 1900-01-01 到 2079-06-06。事实上,如果我将它从 31.12.2099 更改为 06.06.2079,它可以正常工作(另请参阅https://docs.microsoft.com/en-us/answers/questions/175510/oledbtype-dbtimestamp-in-oledbdataadapter-错误-be.html )。
解决方案是使用 OleDbType.DBDate 而不是 OleDbType.DBTimeStamp。但是,如果我也想保持时间呢?所以我的问题是:
- 为什么我在更换连接提供商之前没有这个问题?似乎这个范围限制被忽略了。
- 我现在应该使用哪种类型来保留日期和时间?只有三种与日期时间相关的 OLE DB 类型:DBDate、DBTime 和 DBTimeStamp。
评论
尝试按照此链接中的说明设置比例不起作用(当 DataTypeCompatility 开启时,如何将 12/30/1899 参数化为 SQL Server 本机客户端?)。
在这种情况下,我收到以下错误:
当我如前所述更改连接字符串时,我遇到了同样的错误。然后我通过添加DataTypeCompatibility=80
到连接字符串来解决它,这很好(另见https://social.msdn.microsoft.com/Forums/en-US/1241147c-42a1-40a5-b4c6-374374e462cd/the-fractional-part -of-the-provided-time-value-overflows-the-scale-of-the-corresponding-sql-server?forum=transactsql)。