我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
我需要将DateTime变量中的值转换为yyyy-mm-dd格式的varchar变量(没有时间部分)。
我怎么做呢?
当前回答
OP提到了datetime格式。对我来说,时间成了绊脚石。 我认为在格式化之前删除时间部分(通过强制转换datetime到date)会更简洁一些。
convert( varchar(10), convert( date, @yourDate ) , 111 )
其他回答
你没有说哪个数据库,但是用mysql这里是一个从时间戳中获得日期的简单方法(varchar类型转换应该自动发生):
mysql> select date(now());
+-------------+
| date(now()) |
+-------------+
| 2008-09-16 |
+-------------+
1 row in set (0.00 sec)
对于SQL Server 2008+,可以同时使用CONVERT和FORMAT。
例如,对于欧洲风格(例如德国)的时间戳:
CONVERT(VARCHAR, FORMAT(GETDATE(), 'dd.MM.yyyy HH:mm:ss', 'de-DE'))
select REPLACE(CONVERT(VARCHAR, FORMAT(GETDATE(), N'dd/MM/yyyy hh:mm:ss tt')),'.', '/')
结果是05/05/2020 10:41:05 AM
时间格式为'yyyy-mm-dd 00:00:00.000'
SELECT CAST( CONVERT(VARCHAR, GETDATE(), 101) AS DATETIME) ;
使用Microsoft SQL Server:
使用CONVERT语法:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
例子:
SELECT CONVERT(varchar,d.dateValue,1-9)
对于样式,您可以在这里找到更多信息:MSDN - Cast和转换(Transact-SQL)。