Access 和 SQL Server 计算日期的方式不同

2024-01-14

我们有一些通用工具,除其他外,可以保存和显示日期。 它将把它保存为一个数字,例如 41247。

如果我将其转换回 Access 中的日期,我会得到 2012/12/04 - 这是正确的。
[使用 Format(41247;"常规日期") 或 Format(Format("41247", "短日期"), "短日期")]

如果我将该数字转换回 SQL Server 中的日期,我会得到 2012/12/06 - 不正确。 我正在使用 CONVERT(datetime, CONVERT(real, 41247))

为什么会出现这种差异,我可以在 SQL 中使用什么来修复它?


所以我在从Excel文件导入数据时遇到了这个问题。

造成 2 天差异的原因有两个

原因1 在 SQL Server 中,1900 年 1 月 1 日是第 0 天,而在访问中则是第 1 天。

(我没有使用过 Access,但如果您在 Excel 中输入日期 1900-01-01 并将单元格格式设置为数字,您将得到 1)。

原因2 1900 年不是闰年。 SQL Server 知道这一点,但 Access 不知道。它认为 1900 年 2 月 29 日确实存在。

在您的 SQL Server 中运行它

SELECT DATEDIFF(dd, 0, '1900-01-01')
SELECT DATEDIFF(dd, 0, '1900-02-28')
SELECT DATEDIFF(dd, 0, '1900-03-01')

输出将是

0
58 
59

但当你尝试跑步时

SELECT DATEDIFF(dd, 0, '1900-02-29')

你会得到一个错误

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

由于这 2 个原因,您的访问权限可以多获得 2 天的时间。

因此,对于 2012/12/04,Access 返回 41247,而 SQL Server 将为您返回 41245。

希望有帮助。

EDIT

看看 Eric Lippert 的评论,他提到了他和 Joel Spolsky 写的两篇非常有趣的博客文章。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Access 和 SQL Server 计算日期的方式不同 的相关文章

  • 如何将 数组传递给存储过程

    我有一个清单索赔数据在 C 中 它有三个项目 日期 类型和描述 其中可以有多行 如下所示 索赔数据 Date Type Description 01 02 2012 Medical Its a medical 05 02 2013 Thef
  • 获取特定月份/年份的第一天

    有没有比以下更好的方法返回特定月份 年份的第一天的日期 month date m year date Y from date Y m d mktime 0 0 0 month 1 year 这在计算上并不完全优雅 但我喜欢它 因为它非常可读
  • 如何通过子 POJO 的属性过滤复合 ManyToMany POJO?

    我有两个像这样的房间实体 Entity public class Teacher implements Serializable PrimaryKey autoGenerate true public int id ColumnInfo n
  • 实现软删除的最佳方法是什么?

    目前在做一个项目 我们要对大部分用户 用户角色 实现软删除 我们决定添加一个is deleted 0 数据库中每个表的字段并将其设置为 1 如果特定用户角色点击特定记录上的删除按钮 现在为了将来的维护 每个SELECT查询需要确保它们不包含
  • 同一索引操作上的不同估计行?

    简介和背景 我必须优化一个简单的查询 下面的示例 重写几次后 我认识到同一个索引操作的估计行数会根据查询的编写方式而有所不同 最初 该查询执行了聚集索引扫描 因为生产中的表包含二进制列 该表相当大 大约 100 GB 并且全表扫描执行起来需
  • 在存储过程中验证用户的最简单方法?

    我需要一个存储过程 可以通过发送以下内容来检查登录尝试时他们是否是有效用户login and password查看它们在数据库中是否匹配 有没有一种简单的方法可以做到这一点 如果没有更多信息 我目前能提供的最好信息是 CREATE STOR
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i
  • 数据库字段中的逗号分隔值

    我有一个产品表 该表中的每一行对应一个产品 并由唯一的 ID 标识 现在 每个产品都可以有多个与该产品关联的 代码 例如 Id Code 0001 IN ON ME OH 0002 ON VI AC ZO 0003 QA PS OO ME
  • 在 SQL Server 上执行分页的最佳方式是什么?

    我有一个数据库超过200万记录 我需要执行分页以在我的 Web 应用程序上显示 该应用程序每页必须有 10 条记录DataGrid 我已经尝试使用ROW NUMBER 但是这种方式会选择所有 200 万条记录 然后只得到 10 条记录 我也
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam
  • java中时间从hh:mm:ss转换为hh:mm

    我想将时间从 hh mm ss 转换为 hh mm 它来自数据库 我的sql 格式为hh mm ss 我尝试了以下代码 但没有得到我想要的 try s HibernateUtil currentSession tx s beginTrans
  • 如何从 SQL Server 2008 查询结果中删除“NULL”

    我有一个包含 59 列和超过 17K 行的表 很多行都有NULL在某些列中 我想删除NULL以便查询返回空白 而不是NULL 我可以运行一些更新功能来替换所有NULL with 使用 SQL Server 2008R2 Management
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 我不断收到错误“关系 [TABLE] 不存在”

    我一直在尝试查询数据库中的两个表 在服务器资源管理器中 我可以看到两个表 甚至可以看到其中的列 我们将它们称为 Schema table1 和 Schema table2 其中 Schema 的第一个字母大写 我尝试运行以下查询 selec
  • Spark SQL 中的 SQL LIKE

    我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接 我正在执行连接的行看起来像这样 称为 修订 Table A 8NXDPVAE Table B 4 8 NXD V 在 SQL Server 上执行联接 A revision
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • 如何使用 PHPExcel 库从 Excel 获取日期

    我正在尝试使用 PHPExcel 从 Excel 获取日期 但我没有得到日期 我得到的字符串值不是 1970 以来的秒数 我尝试过的代码是 InvDate trim excel gt getActiveSheet gt getCell B
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么

随机推荐

  • 指针有什么意义? [复制]

    这个问题在这里已经有答案了 当我可以声明变量时 C 中的指针有什么意义 什么时候适合使用它们 通过 C 和 C 在向函数传递变量方面的差异 可以更好地理解指针 是的 您可以传递整个变量或仅传递指向它的指针 行话分别是按值或引用 但是 如果变
  • 在 Firebase iOS SDK 中,每次删除子项时都会触发 .childAdded。我怎样才能阻止这个?

    我将一些数据存储在 Firebase 数据库中名为 通知 的节点下 当我将事件观察器添加到 通知 并将事件类型设置为 childAdded 时 每次将子级添加到 通知 节点以及每次从 通知 节点删除子级时 都会调用完成处理程序 首先 我不明
  • 生成器和返回生成器的函数之间的区别

    我正在用生成器调试一些代码并提出这个问题 假设我有一个生成器函数 def f x yield x 和一个返回生成器的函数 def g x return f x 他们肯定会返回相同的东西 在 Python 代码中互换使用它们时会有什么区别吗
  • 使用 SQL 查询或 Laravel SQL 查询生成器创建表/列组合

    我有一个现有的产品变化方案 我想创建每个生产时间 数量和变化选项的组合 我将通过访问产品的数量 生产时间 变化和变化选项来创建选择表单 表组 id title 1 rug 表天数 id group id day 1 1 1 2 1 2 3
  • 更新应用程序后应用程序图标没有变化

    收到报告称 更新我们的应用程序后 跳板图标没有更新 需要关闭然后打开设备才能使更改生效 当从实时版本更新到测试版本 通过 iTunes 以及从旧 实时 版本更新到最新实时版本 通过设备上的应用商店 时 会发生这种情况 这种情况并不常见 但我
  • R 中的堆叠条形图再现

    我试图在 R 中重现该图 但没有成功 但更多的岁月里 这是数据 title 2016 phased 2017 phased 2018 phased 2019 fully loaded Pillar 1 minimum requirement
  • hive 查询的简单 oozie 示例?

    我正在尝试将一个简单的工作流程转换为 oozie 我尝试过查看 oozie 的示例 但它们有点令人难以接受 实际上 我想运行查询并将结果输出到文本文件 hive e select from tables gt output txt 我如何将
  • React Native 横向模式仅适用于一页

    在 React Native 中是否可以让应用程序以纵向模式运行 但让一个页面以横向模式运行 我知道在 Xcode 中你必须一开始就选择纵向或横向 所以我对如何使应用程序中除一个页面之外的所有页面都变成纵向有点困惑 在 React Navi
  • 如何让用户输入两次以上?

    我是 C 新手 我试图了解如何利用 C 通用输入 cin 我正在尝试编写一个程序来检查句子的字符数量和输入句子中的元音数量 我已经成功完成了这一任务 但是当我尝试让代码再次运行一次时 出现了问题 当它再运行一次时 就不再允许第二次输入 我的
  • Python 中的静态方法和实例方法[重复]

    这个问题在这里已经有答案了 我可以将 Python 方法同时定义为静态方法和实例方法吗 就像是 class C object staticmethod def a self arg1 if self blah blah 这样我就可以同时调用
  • 记录 WCF 接口的最佳方式? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 因此 我正在使用 WCF 并且想要记录我的接口和服务 以便提供给另一家公司的内部应用程序 记录这些接口的最佳方法是什么 我更喜欢将文档与代码内联
  • Android 中的圆形按钮

    我想在 Android 程序中创建圆形按钮 我看过如何创建圆角的EditText https stackoverflow com questions 3646415 how to create edittext with rounded c
  • 在 Matplotlib 的条形图上显示负值的问题

    我正在尝试使用 Matplotlib 创建一个包含正值和负值的条形图 但在让负值显示在 Y 轴上时遇到困难 运行代码时 它将正确显示所有正值 以红色标记 但根本不显示负值 相反 我得到了标记为 y1 的字符串的正值的重复项 请参阅下面的图片
  • 如果每行包含不同数量的字段(数量很大),如何正确读取csv文件?

    我有一个来自亚马逊的文本文件 包含以下信息 user item time rating review text the header is added by me for explanation not in the text file d
  • 如何创建频道然后找到ID

    我正在创建一个频道message guild channels create 我该如何找到该频道的消息 ID 并在新创建的频道中发送消息 message guild channels create bug priority reportPr
  • JS中获取未知单键的对象的值

    如何获取具有未知单键的对象的值 例子 var obj dbm 45 我想在不知道其密钥的情况下获得 45 值 我知道我可以循环对象键 始终是一个 for var key in objects var value objects key 但我
  • 实现登录(身份验证)屏幕的最佳实践是什么?

    我想在我的应用程序中实现登录屏幕并寻找最佳实践 假设这段代码 public class LoginActivity extends Activity public void onCreate Bundle icicle super onCr
  • Restful Api Express postgres 数据库

    我正在使用node和express开发一个restful api 我的数据库是postgresql 我需要使用postgres包pg promise 我知道我需要将我的应用程序与 app js 文件中的数据库连接 但我的问题是 我应该如何在
  • iPhone 4" 屏幕上的 xcassets 无法提取正确的图像

    我正在尝试将 Images xcassets 实现到我正在开发的项目中 据我了解 我可以将不同设备的所有不同大小的图像放在那里 然后调用 UIImage imageNamed name of image set 它将返回我正在处理的设备的正
  • Access 和 SQL Server 计算日期的方式不同

    我们有一些通用工具 除其他外 可以保存和显示日期 它将把它保存为一个数字 例如 41247 如果我将其转换回 Access 中的日期 我会得到 2012 12 04 这是正确的 使用 Format 41247 常规日期 或 Format F