私はこの日付形式を持っています: 2011-09-28 18:01:00 (varchar) で、この形式 28-09-2011 18:01:00 に変更する datetime に変換したいと思います。どうすればいいですか?
616655 次
9 に答える
82
SELECT CONVERT(Datetime, '2011-09-28 18:01:00', 120) -- to convert it to Datetime
SELECT CONVERT( VARCHAR(30), @date ,105) -- italian format [28-09-2011 18:01:00]
+ ' ' + SELECT CONVERT( VARCHAR(30), @date ,108 ) -- full date [with time/minutes/sec]
于 2012-04-20T13:28:59.510 に答える
12
このような
DECLARE @date DATETIME
SET @date = '2011-09-28 18:01:00'
select convert(varchar, @date,105) + ' ' + convert(varchar, @date,108)
于 2012-04-20T13:26:21.227 に答える
10
于 2012-04-20T13:26:55.190 に答える
7
さまざまなスタイルをすべて使用できますdatetime conversion
。
https://www.w3schools.com/sql/func_sqlserver_convert.asp
これには値の範囲があります:-
CONVERT(data_type(length),expression,style)
スタイルの値については、
I Needed 106 のように必要な人を選択してください。
于 2015-02-02T05:49:58.943 に答える
4
以下を試してください
select Convert(Varchar(50),yourcolumn,103) as Converted_Date from yourtbl
于 2016-04-21T15:21:16.317 に答える
3
あなたはこの方法でそれを行うことができますが、それはvarcharとしてそれを残します
declare @s varchar(50)
set @s = '2011-09-28 18:01:00'
select convert(varchar, cast(@s as datetime), 105) + RIGHT(@s, 9)
また
select convert(varchar(20), @s, 105)
于 2012-04-20T13:26:28.367 に答える
3
SELECT CONVERT(VARCHAR(10), GETDATE(), 105) + ' ' + CONVERT(VARCHAR(10), GETDATE(), 108)
于 2012-04-20T13:31:16.767 に答える
3
すでに述べたように、日時にはフォーマット/文字列表現フォーマットはありません。
文字列の出力は、いくつかのフォーマットで変更できます。
文字列を日時に変換するには:
declare @date nvarchar(25)
set @date = '2011-09-28 18:01:00'
-- To datetime datatype
SELECT CONVERT(datetime, @date)
与える:
-----------------------
2011-09-28 18:01:00.000
(1 row(s) affected)
それを必要な文字列に変換するには:
-- To VARCHAR of your desired format
SELECT CONVERT(VARCHAR(10), CONVERT(datetime, @date), 105) +' '+ CONVERT(VARCHAR(8), CONVERT(datetime, @date), 108)
与える:
-------------------
28-09-2011 18:01:00
(1 row(s) affected)
于 2012-04-20T13:28:04.467 に答える
0
私はすべての異なる変換グーグルにうんざりし、新しいバリエーションで拡張されたこのユーティリティ関数にたどり着きました。
CREATE FUNCTION [dbo].[ParseDatetime] (
@INPUT nvarchar(255),
@FORMAT nvarchar(255)
)
RETURNS datetime
AS
BEGIN
DECLARE @TimePart NVARCHAR(255)
DECLARE @DatePart NVARCHAR(255)
DECLARE @DayPart NVARCHAR(255)
DECLARE @ExDayPart NVARCHAR(255)
DECLARE @MonthPart NVARCHAR(255)
DECLARE @YearPart NVARCHAR(255)
DECLARE @Date DATETIME
--DECLARE @INPUTSTRING NVARCHAR(255)
--SET @INPUTSTRING = '20-10-2019 00:00:00'
--SET @FORMAT = 'D-M-YYYY HH:MM:SS'
IF(@FORMAT = 'D-M-YYYY HH:MM:SS')
BEGIN
SET @TimePart = RIGHT(@INPUT,LEN(@INPUT)-CHARINDEX(' ',@INPUT))
SET @DatePart = LEFT(@INPUT,CHARINDEX(' ',@INPUT))
SET @DayPart = LEFT(@DatePart,charindex('-',@DatePart)-1)
SET @ExDayPart = RIGHT(@DatePart,LEN(@DatePart)-charindex('-',@DatePart)+1)
SET @MonthPart = left(@ExDayPart ,charindex('-',@ExDayPart )-1)
SET @YearPart = right(@ExDayPart ,LEN(@ExDayPart )-charindex('-',@ExDayPart )+1)
SET @Date = DATEFROMPARTS(@YearPart,@MonthPart,@DayPart)
END
IF(@FORMAT = 'YYYY-MM-DD')
BEGIN
SET @DayPart = RIGHT(@INPUT,2)
SET @MonthPart = RIGHT(left(@INPUT,7),2)
SET @YearPart = LEFT(@INPUT,4)
SET @Date = DATEFROMPARTS(@YearPart,@MonthPart,@DayPart)
END
IF(@FORMAT = 'EXCEL_DAYS_SINCE_1900')
BEGIN
--DECLARE @INPUT NVARCHAR(255)
--SET @INPUT = ' 43554'
SET @Date = Dateadd(day,CAST(@INPUT AS INT),datefromparts(1900,1,1))
END
RETURN @Date
END
GO
次のように使用します。
SELECT
[DateAsDate] = dbo.[ParseDateTime]([DateAsString], 'YYYY-MM-DD')
FROM [tablename]
于 2021-06-25T08:39:18.100 に答える