sql - 如何从日期时间中删除时间

标签 sql date reporting-services

数据库中的字段DATE具有以下格式:

2012-11-12 00:00:00

我想从日期中删除时间并返回日期,如下所示:

11/12/2012

最佳答案

首先,如果您的日期是 varchar 格式,请更改它,store dates as dates它会为您省去很多麻烦,而且最好尽早完成。问题只会变得更糟。

其次,一旦有了日期,请勿将日期转换为 varchar!保持日期格式,并在应用程序端使用格式来获​​取所需的日期格式。

根据您的 DBMS 有多种方法可以执行此操作:

<小时/>

SQL-Server 2008 及更高版本:

SELECT  CAST(CURRENT_TIMESTAMP AS DATE)
<小时/>

SQL-Server 2005 及更早版本

SELECT  DATEADD(DAY, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP), 0)
<小时/>

SQLite

SELECT  DATE(NOW())
<小时/>

甲骨文

SELECT  TRUNC(CURRENT_TIMESTAMP)
<小时/>

Postgresql

SELECT  CURRENT_TIMESTAMP::DATE
<小时/>

如果您需要在报告中使用特定于文化的格式,您可以明确说明接收文本框的格式(例如 dd/MM/yyyy),也可以设置语言,以便显示相关的日期格式那种语言。

无论哪种方式,这在 SQL 之外都可以更好地处理,因为在 SQL 中转换为 varchar 会影响您在报告中可能执行的任何排序。

如果您不能/不会将数据类型更改为 DATETIME,则在发送到报表服务并按所述处理之前,仍将其转换为 SQL 中的日期(例如 CONVERT(DATETIME, yourField))如上所述。

关于sql - 如何从日期时间中删除时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14279849/

相关文章:

date - VBScript 如何格式化日期?

reporting-services - SSRS BIDS 如何更改 "Deploy"帐户凭据

reporting-services - 带有临时表的 SSRS 报告问题

mysql - SQL 查询以选择最少 10 个结果

以毫秒为单位的日期之间的 SQLite 差异

mysql - 使用sql server根据列中提供的范围将记录拆分为多行

javascript - 如何重新配置​​ Node.js?

reporting-services - 在 SSRS 报告中使用下拉参数

员工数据库的 SQL 查询

SQL Server Int 或 BigInt 数据库表 ID