我需要将 datetime 从转换2012-07-29 10:53:33.010
为
29/07/2012 10:53:33
.
我尝试使用
select CONVERT(varchar(20), GETDATE(), 131)
但根据回历显示日期
11/09/1433 10:53:33:
请帮忙?
我需要将 datetime 从转换2012-07-29 10:53:33.010
为
29/07/2012 10:53:33
.
我尝试使用
select CONVERT(varchar(20), GETDATE(), 131)
但根据回历显示日期
11/09/1433 10:53:33:
请帮忙?
这可以按如下方式完成:
select CONVERT(VARCHAR(10), GETDATE(), 103) + ' ' + convert(VARCHAR(8), GETDATE(), 14)
希望能帮助到你
SELECT FORMAT(your_column_name,'dd/MM/yyyy hh:mm:ss') FROM your_table_name
例子-
SELECT FORMAT(GETDATE(),'dd/MM/yyyy hh:mm:ss')
您可以结合两种格式:
3 dd/mm/yy (British/French)
8 hh:mm:ss
根据CONVERT()
function和 using+
运算符:
SELECT CONVERT(varchar(10),GETDATE(),3) + ' ' + CONVERT(varchar(10),GETDATE(),8)
SELECT CONVERT(CHAR(10),GETDATE(),103) + ' ' + RIGHT(CONVERT(CHAR(26),GETDATE(),109),14)
MSDN Books Online 上关于CAST 和 CONVERT的章节,你错过了一行正确的答案......你可以使用样式 no。121 ( ODBC canonical (with毫秒) ) 得到你正在寻找的结果:
SELECT CONVERT(VARCHAR(30), GETDATE(), 121)
这给了我以下输出:
2012-04-14 21:44:03.793
更新:根据您更新的问题-当然这不起作用-您正在将字符串(这:'4/14/2012 2:44:01 PM'
只是一个字符串-它不是日期时间!)转换为字符串......
您需要首先将您拥有的字符串转换为 aDATETIME
然后将其转换回字符串!
试试这个:
SELECT CONVERT(VARCHAR(30), CAST('4/14/2012 2:44:01 PM' AS DATETIME), 121)
现在你应该得到:
2012-04-14 14:44:01.000
显然,所有毫秒都为零,因为您的原始值不包括任何 ....
CREATE FUNCTION DBO.ConvertDateToVarchar
(
@DATE DATETIME
)
RETURNS VARCHAR(24)
BEGIN
RETURN (SELECT CONVERT(VARCHAR(19),@DATE, 121))
END
这将是varchar
但应该根据需要进行格式化。
RIGHT('0' + LTRIM(DAY(d)), 2) + '/'
+ RIGHT('0' + LTRIM(MONTH(d)), 2) + '/'
+ LTRIM(YEAR(d)) + ' '
+ RIGHT('0' + LTRIM(DATEPART(HOUR, d)), 2) + ':'
+ RIGHT('0' + LTRIM(DATEPART(MINUTE, d)), 2) + ':'
+ RIGHT('0' + LTRIM(DATEPART(SECOND, d)), 2)
d
您的datetime
字段或变量在哪里。