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

Откуда:
Сообщений: 14
Что не так?В чем ошибка?

create database HomeWork
on
(
name='HomeWork',
filename='D:\Projects.mdf',
size=5mb,
maxsize=20mb,
filegrowth=15mb
)
log on
(
name='HomeWork',
filename='D:\LogProjects.ldf',
size=5mb,
maxsize=20mb,
filegrowth=15mb
)
collate cyrillic_general_ci_as
execute sp_helpdb HomeWork
use HomeWork
go
create table Product
(
ProductId smallint IDENTITY NOT NULL, 
Name char(20) NOT NULL,
ProductNumber Char(20) NOT NULL, 
Cost money NOT NULL, 
[Count] integer NOT NULL,
SellStartDate date NOT NULL
) 
go
insert Product
(Name,ProductNumber,Cost,[Count],SellStartDate)
values
('Корона','AK-53818','$5','50','08/15/2011' )
go


ОШИБКА!!!

Msg 241, Level 16, State 1, Line 32
Ошибка преобразования даты или времени из символьной строки.

Сообщение было отредактировано: 16 янв 16, 23:00
16 янв 16, 22:47    [18690020]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
komrad
Member

Откуда:
Сообщений: 5674
User2016UA,

insert Product
(Name,ProductNumber,Cost,[Count],SellStartDate)
values
('Корона','AK-53818','$5','50','20110815' )
go
16 янв 16, 22:55    [18690049]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
User2016UA
Member

Откуда:
Сообщений: 14
komrad,
не помогло
16 янв 16, 23:01    [18690079]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
komrad
Member

Откуда:
Сообщений: 5674
User2016UA
komrad,
не помогло


insert Product
(Name,ProductNumber,Cost,[Count],SellStartDate)
values
('Корона','AK-53818',5,50,'20110815' )
16 янв 16, 23:36    [18690236]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
User2016UA
Member

Откуда:
Сообщений: 14
komrad,
Ничего не поменялось, все та же ошибка
17 янв 16, 00:11    [18690325]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
komrad
Member

Откуда:
Сообщений: 5674
User2016UA,

База-то создалась?
17 янв 16, 01:40    [18690548]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
User2016UA
Member

Откуда:
Сообщений: 14
komrad,
База и таблица создались. А вот строки вставить не могу.
17 янв 16, 02:22    [18690689]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
o-o
Guest
User2016UA,
set language us_english перед вставкой.
или вот это 18690049 не с экрана срисовать, а скопипастить нормально
17 янв 16, 02:27    [18690698]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
ЦБ
Member [заблокирован]

Откуда:
Сообщений: 2773
'2011-08-15'
17 янв 16, 09:10    [18690926]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
User2016UA
Member

Откуда:
Сообщений: 14
o-o,

Спасибо это решило проблему.
Если не сложно объясните почему без изменения языка код не работал,дело в том что я смотрю видео курсы, и там этот код(который я приводил вначале) работал коректно.
19 янв 16, 19:13    [18702955]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
Glory
Member

Откуда:
Сообщений: 104751
User2016UA
дело в том что я смотрю видео курсы, и там этот код(который я приводил вначале) работал коректно.

И какой language у соединения/логина был в этом курсе ?
19 янв 16, 19:43    [18703024]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
o-o
Guest
потому что серверу надо знать, что за дата скрывается за литералами типа 01.02.2015,
это 1ое февраля или 2ое января.
можно передавать "в конверте" (convert), указав формат передаваемого,
можно использовать языконезависимый формат типа 20150102,
если это все не сделано, сервер считает, что формат соответствует принятому в языке сессии.
поэтому лучше всего от языка не зависеть.
в гугле искать на sql server language-independent format
19 янв 16, 19:45    [18703031]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
iap
Member

Откуда: Москва
Сообщений: 47085
o-o
в гугле искать на sql server language-independent format
https://msdn.microsoft.com/ru-ru/library/ms180878(v=sql.100).aspx
19 янв 16, 20:22    [18703120]     Ответить | Цитировать Сообщить модератору
 Re: Преобразования даты или времени из символьной строки  [new]
o-o
Guest
да,
офиц. хэлп это правильно, или вот еще
Working with Date and Time Data
It is important to note that some character string formats of date and time literals are language
dependent, meaning that when you convert them to a date and time data type, SQL Server might
interpret the value differently based on the language setting in effect in the session. Each logon de-
fined by the database administrator has a default language associated with it, and unless it is changed
explicitly, that language becomes the effective language in the session. You can overwrite the default
language in your session by using the SET LANGUAGE command, but this is generally not recom-
mended because some aspects of the code might rely on the user’s default language.

The effective language in the session sets several language-related settings behind the scenes,
among them one called DATEFORMAT, which determines how SQL Server interprets the liter-
als you enter when they are converted from a character string type to a date and time type. The
DATEFORMAT setting is expressed as a combination of the characters d, m, and y. For example, the
us_english language setting sets the DATEFORMAT to mdy, whereas the British language setting
sets the DATEFORMAT to dmy. You can override the DATEFORMAT setting in your session by using
the SET DATEFORMAT command, but as mentioned earlier, changing language-related settings is
generally not recommended.
19 янв 16, 22:05    [18703397]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить