Как преобразовать DateTime в VarChar

294
задан Dyrandz Famador 20 September 2015 в 22:05
поделиться

7 ответов

С Microsoft Sql Server:

--
-- Create test case
--
DECLARE @myDateTime DATETIME
SET @myDateTime = '2008-05-03'

--
-- Convert string
--
SELECT LEFT(CONVERT(VARCHAR, @myDateTime, 120), 10)
254
ответ дан TonyOssa 23 November 2019 в 01:36
поделиться

Вы не говорите, какой язык, но я принимаю C#/.NET, потому что он имеет собственный компонент DateTime тип данных. В этом случае просто преобразуйте его с помощью ToString метод и используйте спецификатор формата, такой как:

DateTime d = DateTime.Today;
string result = d.ToString("yyyy-MM-dd");

Однако я предостерег бы против использования этого в запросе базы данных или связанный в SQL-оператор. Базы данных требуют, чтобы использовалась определенная строка форматирования. Вы - более обеспеченное обнуление часть времени и использование DateTime как параметр SQL если, именно это Вы пытаетесь выполнить.

-3
ответ дан Sabyasachi Mishra 23 November 2019 в 01:36
поделиться

Вы не сказали, какая база данных, но с mysql вот простой способ получить дату от метки времени (и varchar преобразование типов должно произойти автоматически):

mysql> select date(now());
+-------------+
| date(now()) |
+-------------+
| 2008-09-16  | 
+-------------+
1 row in set (0.00 sec)
1
ответ дан Allan Wind 23 November 2019 в 01:36
поделиться

Попробуйте следующее:

CONVERT(VARCHAR(10),GetDate(),102)

Тогда необходимо было бы заменить "." "-".

Вот сайт, который помогает http://www.mssqltips.com/tip.asp?tip=1145

3
ответ дан DMK 23 November 2019 в 01:36
поделиться

Или Cast или Convert:

Синтаксис для CAST:

CAST ( expression AS data_type [ (length ) ])

Синтаксис для CONVERT:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

http://msdn.microsoft.com/en-us/library/ms187928.aspx

На самом деле, так как Вы попросили определенный формат:

REPLACE(CONVERT(varchar(10), Date, 102), '.', '-')
9
ответ дан BlueRaja - Danny Pflughoeft 23 November 2019 в 01:36
поделиться

Попробуйте следующее:

CONVERT(varchar(10), [MyDateTimecolumn], 20)

В течение целого времени даты и не просто даты сделайте:

CONVERT(varchar(23), [MyDateTimecolumn], 121)

Посмотрите эту страницу для стилей преобразования:

http://msdn.microsoft.com/en-us/library/ms187928.aspx
ИЛИ
SQL Server ПРЕОБРАЗОВЫВАЮТ () Функцию

184
ответ дан Yakir Manor 23 November 2019 в 01:36
поделиться
declare @dt datetime

set @dt = getdate()

select convert(char(10),@dt,120) 

я зафиксировал длину данных char(10), поскольку Вы хотите определенный формат строки.

3
ответ дан Dawson Loudon 23 November 2019 в 01:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: