我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
当前回答
你没有说哪个数据库,但是用mysql这里是一个从时间戳中获得日期的简单方法(varchar类型转换应该自动发生):
mysql> select date(now());
+-------------+
| date(now()) |
+-------------+
| 2008-09-16 |
+-------------+
1 row in set (0.00 sec)
其他回答
试试下面的方法:
CONVERT(varchar(10), [MyDateTimecolumn], 20)
对于一个完整的约会时间,而不仅仅是约会,请:
CONVERT(varchar(23), [MyDateTimecolumn], 121)
查看本页转换样式:
http://msdn.microsoft.com/en-us/library/ms187928.aspx 或 SQL Server CONVERT()函数
SQL Server 2012有一个新函数,FORMAT: http://msdn.microsoft.com/en-us/library/ee634924.aspx
并且您可以使用自定义日期时间格式字符串:http://msdn.microsoft.com/en-us/library/ee634398.aspx
这些页面暗示它也可以在SQL2008R2上使用,但是我没有一个方便的页面来测试这种情况。
示例用法(Australian datetime):
FORMAT(VALUE,'dd/MM/yyyy h:mm:ss tt')
对于SQL Server 2008+,可以同时使用CONVERT和FORMAT。
例如,对于欧洲风格(例如德国)的时间戳:
CONVERT(VARCHAR, FORMAT(GETDATE(), 'dd.MM.yyyy HH:mm:ss', 'de-DE'))
试试下面的方法:
CONVERT(VARCHAR(10),GetDate(),102)
然后需要将“。”替换为“-”。
这里有一个网站可以提供帮助 http://www.mssqltips.com/tip.asp?tip=1145
declare @dt datetime
set @dt = getdate()
select convert(char(10),@dt,120)
我有固定的数据长度的字符(10),因为你想要一个特定的字符串格式。