Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 конвертировать datetime в строку  [new]
sessy
Member

Откуда:
Сообщений: 34
есть поле datv (datetime)

нужно выполнить запрос:
select 'документ выдан '+ CAST(datv AS VARCHAR(12)) from ab

выдается результат:
документ выдан Sep 29 2004
документ выдан Jul 4 2005

а надо, чтобы было так:
документ выдан 29/09/2004
документ выдан 4/07/2005
26 окт 09, 05:08    [7836510]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать datetime в строку  [new]
aleks2
Guest
BOL:
CAST and CONVERT
Explicitly converts an expression of one data type to another. CAST and CONVERT provide similar functionality.

Syntax
Using CAST:

CAST ( expression AS data_type )

Using CONVERT:

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

Arguments
expression

Is any valid Microsoft® SQL Server™ expression. For more information, see Expressions.

data_type

Is the target system-supplied data type, including bigint and sql_variant. User-defined data types cannot be used. For more information about available data types, see Data Types.

length

Is an optional parameter of nchar, nvarchar, char, varchar, binary, or varbinary data types.

style

Is the style of date format used to convert datetime or smalldatetime data to character data (nchar, nvarchar, char, varchar, nchar, or nvarchar data types), or the string format when converting float, real, money, or smallmoney data to character data (nchar, nvarchar, char, varchar, nchar, or nvarchar data types).

SQL Server supports the date format in Arabic style, using Kuwaiti algorithm.

In the table, the two columns on the left represent the style values for datetime or smalldatetime conversion to character data. Add 100 to a style value to get a four-place year that includes the century (yyyy).

Without century (yy) With century (yyyy)
Standard
Input/Output**
- 0 or 100 (*) Default mon dd yyyy hh:miAM (or PM)
1 101 USA mm/dd/yy
2 102 ANSI yy.mm.dd
3 103 British/French dd/mm/yy
4 104 German dd.mm.yy
5 105 Italian dd-mm-yy
6 106 - dd mon yy
7 107 - Mon dd, yy
8 108 - hh:mm:ss
- 9 or 109 (*) Default + milliseconds mon dd yyyy hh:mi:ss:mmmAM (or PM)
10 110 USA mm-dd-yy
11 111 JAPAN yy/mm/dd
12 112 ISO yymmdd
- 13 or 113 (*) Europe default + milliseconds dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 or 120 (*) ODBC canonical yyyy-mm-dd hh:mi:ss(24h)
- 21 or 121 (*) ODBC canonical (with milliseconds) yyyy-mm-dd hh:mi:ss.mmm(24h)
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss.mmm(no spaces)
- 130* Hijri**** dd mon yyyy hh:mi:ss:mmmAM
- 131* Hijri**** dd/mm/yy hh:mi:ss:mmmAM


* The default values (style 0 or 100, 9 or 109, 13 or 113, 20 or 120, and 21 or 121) always return the century (yyyy).
26 окт 09, 05:19    [7836522]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать datetime в строку  [new]
sessy
Member

Откуда:
Сообщений: 34
я не умею читать. в настройках сервера в default language for user: Russian
подскажите пож. что где еще надо поставить?
26 окт 09, 06:24    [7836579]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать datetime в строку  [new]
aleks2
Guest
sessy
я не умею читать. в настройках сервера в default language for user: Russian
подскажите пож. что где еще надо поставить?

Учиться надо.

declare @d datetime
set @d=getdate()

select @d, convert(varchar, @d, 103)
26 окт 09, 06:41    [7836588]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать datetime в строку  [new]
sessy
Member

Откуда:
Сообщений: 34
спасибо большое!!

convert(varchar,datv, 104) - то, что мне нужно
26 окт 09, 07:40    [7836633]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать datetime в строку  [new]
RSRuslan
Member

Откуда: Киев
Сообщений: 173
Блин! А я там не нашёл для ГГГГММДДЧЧММСС.

Там такое есть в принципе? :)
26 ноя 09, 12:48    [7981794]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать datetime в строку  [new]
PaulYoung
Member

Откуда: Москва
Сообщений: 2549
RSRuslan,

а взять наиболее подходящий и самому сделать?
26 ноя 09, 12:52    [7981823]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать datetime в строку  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
select replace(replace(replace(convert(varchar(19), getdate(), 120), '-', ''), ':', ''), ' ', '')

-------------------
20091126115143

(1 row(s) affected)
26 ноя 09, 12:52    [7981825]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать datetime в строку  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
RSRuslan
Блин! А я там не нашёл для ГГГГММДДЧЧММСС.

Там такое есть в принципе? :)


Блин, все на готовенькое... 120 тип и три REPLACE.
26 ноя 09, 12:55    [7981844]     Ответить | Цитировать Сообщить модератору
 Re: конвертировать datetime в строку  [new]
RSRuslan
Member

Откуда: Киев
Сообщений: 173
Спасибо, дорогие! :) Вы же сами знаете - лень, двигатель прогресса :)
26 ноя 09, 13:00    [7981888]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить