use*_*212 39 sql date reporting-services
数据库中的字段DATE具有以下格式:
2012-11-12 00:00:00
Run Code Online (Sandbox Code Playgroud)
我想从日期中删除时间并返回日期,如下所示:
11/12/2012
Run Code Online (Sandbox Code Playgroud)
Gar*_*thD 65
首先,如果您的日期是varchar格式更改,将日期存储为日期将为您节省很多麻烦,这是最好的事情,而不是更晚.这个问题只会变得更糟.
其次,一旦你有一个日期,不要将日期转换为varchar!保持日期格式并在应用程序端使用格式以获取所需的日期格式.
根据您的DBMS,有多种方法可以执行此操作:
SQL-Server 2008及更高版本:
SELECT CAST(CURRENT_TIMESTAMP AS DATE)
Run Code Online (Sandbox Code Playgroud)
SQL-Server 2005和早期版本
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP), 0)
Run Code Online (Sandbox Code Playgroud)
SQLite的
SELECT DATE(NOW())
Run Code Online (Sandbox Code Playgroud)
神谕
SELECT TRUNC(CURRENT_TIMESTAMP)
Run Code Online (Sandbox Code Playgroud)
PostgreSQL的
SELECT CURRENT_TIMESTAMP::DATE
Run Code Online (Sandbox Code Playgroud)
如果您需要在报表中使用特定于文化的格式,您可以明确说明接收文本框的格式(例如dd/MM/yyyy),也可以设置语言以便显示该语言的相关日期格式.
无论哪种方式,这都可以在SQL之外更好地处理,因为在SQL中转换为varchar会影响您在报表中执行的任何排序.
如果您不能/不会将数据类型更改为DATETIME,那么CONVERT(DATETIME, yourField)
在发送到报表服务并按上述方法处理之前,仍然会将其转换为SQL中的日期(例如).
只是使用,(在TSQL中)
SELECT convert(varchar, columnName, 101)
Run Code Online (Sandbox Code Playgroud)
在MySQL中
SELECT DATE_FORMAT(columnName, '%m/%d/%Y')
Run Code Online (Sandbox Code Playgroud)
我发现这个方法非常有用。但是,它会将您的日期/时间格式转换为日期,但它可以满足我的需要。(我只需要在报告上显示日期,时间无关紧要)。
CAST(start_date AS DATE)
Run Code Online (Sandbox Code Playgroud)
更新
(请记住,我是一名实习生;))
如果您使用 SSRS,我想出了一个更简单的方法来做到这一点。
实际更改报表中字段所在的文本框属性会更容易。右键单击字段>数字>日期并选择适当的格式!
归档时间: |
|
查看次数: |
189471 次 |
最近记录: |