【问题标题】:Convert DateTime into Date only, inside of the SELECT SQL statement在 SELECT SQL 语句内仅将 DateTime 转换为 Date
【发布时间】:2014-06-04 18:32:26
【问题描述】:

我有一条 SQL 语句

SELECT NO, MEMBID, DATEFROM, DATETO from Member where MEMBID ='xxyy'

我收到日期为 DateTime 格式的返回。我只希望它们采用日期格式。

我试过了:-

SELECT NO, MEMBID, CONVERT(DATEFROM, GETDATE()), DATETO from Member where MEMBID ='xxyy'

SELECT NO, MEMBID, CAST(DATEFROM as DATE()), DATETO from Member where MEMBID ='xxyy'

这些似乎不起作用。

我需要在 SQL 语句本身内部进行转换。一直在谷歌上四处寻找,但似乎找不到任何东西。有什么见解吗?

编辑:- 最终对我有用的是以下转换技术。

转换(VARCHAR(10),DATEFROM,101)

【问题讨论】:

  • 这是“SQL Server”吗?或其他一些 SQL 实现?请适当标记。另外,您如何检索这些值?您只是在查看管理工具,还是从应用程序代码中查询它们?例如,SQL Server 中有 DATE 类型,但在 .Net 中转换为 DateTime,因为没有定义 Date 类型。
  • 我的 SQL 版本 - MS SQL 2012

标签: sql sql-server datetime sql-server-2012


【解决方案1】:

这是一个将日期时间转换为日期的查询。

select cast('2014-06-04 00:00:00.000' as date)

【讨论】:

  • 对不起,我主要使用 sql server 2008 及更高版本。我猜你使用的是以前的版本。
  • 我的 SQL 版本 - MS SQL 2012
【解决方案2】:

DateTimeDate 对象中没有格式。这只伴随着数据的显示。

您与 Convert 非常接近,但只需要 output format

CONVERT(VARCHAR(10), DATEFROM, 101)

这会将DATEFROM 列输出为mm/dd/yyyy

【讨论】:

  • @Philo 然后告诉我们你尝试了什么,因为你的结果没有多大意义
  • 这是最终对我有用的方法:- CONVERT(VARCHAR(10), DATEFROM, 101)
  • 即使你在我发布我的答案后改变了你的答案,我会给你功劳。
  • @Philo 这是真的,虽然我刚吃完午饭回来并意识到我的错误。我已修复编辑并在您发布评论时保存它。 :)
【解决方案3】:

这应该可以工作

SELECT NO, MEMBID, CAST(DATEFROM AS DATE), DATETO from Member where MEMBID ='xxyy'

对于 SQL SERVER 2012

应该是

SELECT NO, MEMBID, CONVERT(date, DATEFROM), DATETO from Member where MEMBID ='xxyy'

http://sqlfiddle.com/#!6/287dd/6 示例

【讨论】:

  • 是 MS SQL 服务器吗?哪个版本?
  • 我的 SQL 版本 - MS SQL 2012
猜你喜欢
  • 2015-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 2018-09-17
  • 1970-01-01
相关资源
最近更新 更多