【发布时间】:2013-09-30 08:07:14
【问题描述】:
如何消除查询中的秒数部分。我使用 DateADD 将秒部分显示为 0 但我只想忽略它。我只想显示日期小时:分钟 我已经使用了这个查询,它返回给我类似的东西
SELECT DATEADD(minute, DATEDIFF(minute,0,GETDATE()), 0)
2013-09-30 13:03:00.000
但我只想要2013-09-30 13:03 部分。
谁能帮帮我?
【问题讨论】:
如何消除查询中的秒数部分。我使用 DateADD 将秒部分显示为 0 但我只想忽略它。我只想显示日期小时:分钟 我已经使用了这个查询,它返回给我类似的东西
SELECT DATEADD(minute, DATEDIFF(minute,0,GETDATE()), 0)
2013-09-30 13:03:00.000
但我只想要2013-09-30 13:03 部分。
谁能帮帮我?
【问题讨论】:
如果您正在处理一种格式,那么您最终需要的是一个 字符串,而不是 datetime 值 - datetimes(或 datetime2s)不要't 有格式。
所以你需要转换成字符串。没有与您要求的完全匹配的 format,但如果您进行转换并且没有给 CONVERT 足够的空间,它会截断结果:
SELECT CONVERT(varchar(16),GETDATE(),120)
【讨论】:
datetime(在 SQL 或例如 C# 中)时,正如我所说,它们没有 格式。它们只是有一些内部表示(通常是纯数字)——因为这些类型是固定的和预定义的——没有办法将类型修改为datetime-but-in-this-instance-please-ignore-the-seconds。您需要学会将格式问题与数据存储问题分开。
datetime”和“不显示秒”,那么您的要求是相互矛盾的——您不能同时做到这两点。
您不能保留 datetime2 格式并截断其中的一部分。
您可以尝试以下方法之一:
SELECT CAST(GETDATE() as date)
SELECT CONVERT(varchar(16),GETDATE(),120)
如果这仍然不能完全满足您的需求,您可以在this post 中看到许多其他可能的转换。
【讨论】: