转换日期时间在SQL Server
在SQL Server中,日期是越来越保存在以下格式: -转换日期时间在SQL Server
2017-02-20 05:59:58.537
但我需要在以下格式的输出:
20/Feb/2017 11:29:58 AM
正确答案:
SELECT REPLACE(CONVERT(VARCHAR(11), getdate(), 113), ' ', '/') + ' ' + CONVERT(VARCHAR(20), CONVERT(TIME, getdate()), 22)
试试这个,
SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')+' '+right(getdate(),7)
感谢您的回应,但它没有得到它的输出有问题。缺失是'秒' – Asad
尝试这个
select replace(convert(varchar(11),GETDATE(),113), ' ', '/')+ ' '+ RIGHT(CONVERT(varchar(20), GETDATE(), 22), 11);
感谢兄弟,它的工作 – Asad
@Asad:如果答案解决了您的问题,您应该接受它,以便其他人会知道问题已解决。 –
@Asad,更多分类:https://i.stack.imgur.com/QpogP.png –
Try below conversion method :
DECLARE @DATE DATETIME = '2017-02-20 05:59:58.537'
SELECT REPLACE(CONVERT(VARCHAR(11),@DATE,113), ' ', '/') + ' '
+CONVERT(VARCHAR(20),@DATE,108)+' ' +RIGHT(@DATE,2)
SQL根据默认设置(yyyy-mm-dd hh:mm:ss:ms)存储日期。在获取该日期时,您需要根据您的要求转换该日期。
错了。 [Sql服务器将日期存储为数字。](http://*.com/questions/30032915/how-to-cast-the-datetime-to-time/30033028#30033028) –
我有我使用日期函数,你可以修改它包括时,分,秒的细节,太多。
CREATE FUNCTION [dbo].[fn_DateDisplay]
(
-- Add the parameters for the function here
@dateIn date
)
RETURNS nvarchar(MAX)
AS
BEGIN
-- Declare the return variable here
DECLARE @dateOut nvarchar(MAX)
DECLARE @yearIn int
DECLARE @monthIn int
DECLARE @dayIn int
DECLARE @monthOut nvarchar(3)
-- Add the T-SQL statements to compute the return value here
SET @yearIn = YEAR (@dateIn)
SET @monthIn = MONTH (@dateIn)
SET @dayIn = DAY (@dateIn)
SET @monthOut = SUBSTRING (DATENAME (MONTH , @dateIn) , 1 , 3)
SET @dateOut = CONCAT (@dayIn , ' ' , @monthOut , ' ' , @yearIn)
-- Return the result of the function
RETURN @dateOut
END
参见:http://www.sql-server-helper.com/tips/date-formats.aspx –
为什么你存储日期为'VARCHAR'? –
SQL根据默认设置存储日期。在获取该日期时,您需要根据您的要求转换该日期。你可以试试这个http://www.sql-server-helper.com/sql-server-2008/sql-server-2008-date-format.aspx –