【发布时间】:2011-11-20 14:31:19
【问题描述】:
我有一个名为 FcData 的表,数据如下所示:
Op_Date
2011-02-14 11:53:40.000
2011-02-17 16:02:19.000
2010-02-14 12:53:40.000
2010-02-17 14:02:19.000
我希望 mm/yyyy 格式的输出示例输出应该是:
Op_Date
02/2011
02/2011
02/2010
02/2010
我写了这样的查询:
SELECT CONVERT(VARCHAR,DATEPART(mm,Op_Date
)) + '/' + CONVERT(VARCHAR,DATEPART(yyyy,Op_Date))
FROM Fcdata
但我得到的输出是:
Op_Date
2/2011
2/2011
2/2010
2/2010
谁能帮帮我?
【问题讨论】:
-
最好的选择是将完整的值返回给客户端并让客户端代码格式化它。你有什么理由必须在数据库中这样做?
-
@Oded 我将此数据加入到另一个表中,他们将格式存储为 02/2011 而不是 2/2011
-
可能不是您正在寻找的答案,但我想说 varchar 列需要更改为 DateTime 或 Date (SQL Server 2008) 列。
-
我在这里写了关于 FORMAT 的博客:sqlblog.com/blogs/aaron_bertrand/archive/2011/08/09/… 另外,请不要使用没有长度的 VARCHAR。背景见sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/…
标签: sql-server sql-server-2005 tsql sql-server-2008 datetime