在 SQL Server 和 MS Access 上将 Format() 的 DateTime 转换为 Date

发布于 2024-12-11 18:28:37 字数 235 浏览 0 评论 0原文

我有一个可以使用 SQL Server 或 MS Access 作为数据存储的应用程序。

在一张表中,我有一个 DATETIME 列。我想检索该值作为日期值(时间部分被剥离)。

我可以在 SQLServer 中使用 CAST() 以及在 MS Access 中使用 Format() 来完成此操作。理想情况下,我想要一个可以应用于任一数据库的 SQL 查询,而不是向每个数据库发送略有不同的查询。有谁知道做到这一点的技巧吗?

I have an application that can use either SQL Server or MS Access as the data store.

In one table, I have a DATETIME column. I would like to retrieve the value as a DATE value (with the time part stripped off).

I can do that in SQLServer with CAST() and in MS Access with Format(). Ideally, I would like a single SQL query that could be applied against either database instead of sending a slightly different query to each database. Does anyone know a trick to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风透绣罗衣 2024-12-18 18:28:37

使用 DATEADD/DATEDIFF

Sql Server

SELECT DATEADD("d",  DATEDIFF("d", 0, getdate()), 0) as someDateOnly

MS Access

SELECT DATEADD("d",  DATEDIFF("d", 0, Now()),0) AS someDateOnly;

只需使用字段名称代替 GetDate()Now()

例如,

 SELECT DATEADD("d",  DATEDIFF("d", 0, [somefield]),0) AS someDateOnly;

作为旁注 DateAdd/DateDiff 是您想要的方式如果你想在 2008 年之前的版本中删除时间,就去吧。

Use DATEADD/DATEDIFF

Sql Server

SELECT DATEADD("d",  DATEDIFF("d", 0, getdate()), 0) as someDateOnly

MS Access

SELECT DATEADD("d",  DATEDIFF("d", 0, Now()),0) AS someDateOnly;

Just use a field name in place of GetDate() and Now()

E.g.

 SELECT DATEADD("d",  DATEDIFF("d", 0, [somefield]),0) AS someDateOnly;

as an aside DateAdd/DateDiff is the way you want to go if you want to strip the time in versions prior to 2008 anyway.

一萌ing 2024-12-18 18:28:37

有时您运行access(例如在开发中),有时运行sql服务器,并且您想确保它在两者中都有效?

我知道只有两种方法(这并不假装是最终的:))。

  • 在 sql 或 access 数据库中创建所有选择作为查询。
    然后在您的代码中,您访问的查询仅
  • 开发一个数据库层,您的语句将在其中被解析并
    处理每个数据库。

由于语法不同,我不知道有其他方法......

Sometimes you run access (e.g. in development) and sometimes a sql server and you want to make sure it works in both?

There are only two way I know (which don't pretend to be final :)).

  • create all selects as queries either in your sql or access database.
    Then in your code you access the queries only
  • develop a database layer where you statements will be parsed and
    handle each database.

Since the syntax is different there is no other way I know...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文