Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 26

Преобразование типов

14.03.2014, 09:32. Показов 1890. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, форумчане.
Подскажите, пожалуйста, в чем может быть проблема. Когда выполняю следующую операцию
Code
1
SELECT CONVERT(datetime, (SELECT [text] FROM Input WHERE ID=4))
сервер выдает ошибку
"Msg 241, Level 16, State 1, Line 33
Ошибка преобразования даты или времени из символьной строки."
формат поля varchar(50), в ячейке такое значение: 2014/03/10 01:00
когда же я это же значение записываю в переменную типа varchar(50)
Code
1
2
DECLARE @tmp varchar(50) = '  2014/03/10 01:00'
SELECT CONVERT(datetime, @tmp)
все прекрасно преобразуется.
Вот такая вот петрушка
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.03.2014, 09:32
Ответы с готовыми решениями:

Преобразование типов переменных
Возник небольшой вопрос Конвертировать следующие форматы BIT в FLOAT NVARCHAR в INT DATETIME в BIGINT 1.Ясно, что тру...

Округление до 2 знаков не используя преобразование типов
Создал таблицу с полями KOL1 decimal(13,2) , KOL2 decimal(13,2) Хочу вывести сумму с 2 знаками после запятой, но что-то не хочет работать,...

Преобразование типов
С клавиатуры вводится вещественное число , где 3 разряда в целой части и 2 разряда в дробной; Найти количество десятков и значение первой...

6
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
14.03.2014, 10:23
Цитата Сообщение от Roman_G Посмотреть сообщение
в ячейке такое значение: 2014/03/10 01:00
И как вы в этом убедились?
0
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 26
14.03.2014, 10:54  [ТС]
Я сам его туда импортировал
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
14.03.2014, 11:05
Чудес не бывает. Что вернет запрос:
T-SQL
1
SELECT [text] FROM Input WHERE ID=4 and [text] = '2014/03/10 01:00';
0
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 26
14.03.2014, 11:22  [ТС]
ничего не возвращает

Добавлено через 6 минут
есть файл txt, с ним я проделываю операцию такую:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use test2;
go
 
DROP TABLE #InputTMP
TRUNCATE TABLE Input
CREATE TABLE #InputTMP(
[text] varchar(50) NULL,
air_hour varchar(50) NULL,
water_hour varchar(50) NULL,
air_accum varchar(50) NULL,
weter_accum varchar(50) NULL
)
 
DECLARE @BulcCmd varchar(max)
DECLARE @Month varchar(1)
DECLARE @LastDay varchar(2)
DECLARE @NameOfFile varchar(50)
    
SET @LastDay = CONVERT(varchar(10),(DAY(GETDATE())-1))  
SET @Month = CASE MONTH(GETDATE())
                WHEN 10 THEN 'x'
                WHEN 11 THEN 'y'
                WHEN 12 THEN 'z'
                ELSE CONVERT(varchar(10),MONTH(GETDATE()))
                END
--SET @NameOfFile = @Month+@LastDay+'01000.dhr'
 
SET @NameOfFile='''C:\31001000.dhr'''   --- DEBUG
SET @BulcCmd=N'bulk insert #InputTMP
                from '+@NameOfFile+'
                    with
                        (
                        fieldterminator = '','',
                        rowterminator = ''\n''
                        );'
EXEC(@BulcCmd)
/*
bulk insert #InputTMP
    from @NameOfFile
    with
        (
        fieldterminator = ',',
        rowterminator = '\n'
        );*/
INSERT Input ([text], AirHour, WaterHour, AirAccum, WaterAccum)
SELECT [text],air_hour,water_hour,air_accum,weter_accum FROM #InputTMP
в таблице Input поле [text] имеет тип nvarchar(50)!
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
14.03.2014, 11:46
Ну вот и разберитесь какие данные реально в таблице.
0
0 / 0 / 0
Регистрация: 16.04.2012
Сообщений: 26
14.03.2014, 12:47  [ТС]
И как мне это сделать? Из текстового файла данные идут в последовательно в 2 таблицы, у которых поле varchar(50) и nvarchar(50). Как же формат может на другой поменяться? Или может дело в пробелах? (до или после), но эту ячейку я проходил LTRIM и RTRIM

Добавлено через 10 минут
все, разобрался. перед значением два пробела было, но не понятно, почему не сработал LTRIM???

Добавлено через 42 минуты
Хотя вообще какая-то ерунда получается: первый запрос нормально работает, а второй ничего не выдает (впереди 2 пробела). Как такое может быть?
T-SQL
1
2
SELECT CONVERT(datetime, RIGHT((SELECT [text] FROM Input WHERE ID=4),16))
SELECT [text] FROM Input WHERE ID=4 and [text] = '  2014/03/10 01:00'
Добавлено через 1 минуту
да и в самом начале, когда я пример приводил, в переменной тоже спереди пробелы были, но это никак не мешело переводить значение в дату
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.03.2014, 12:47
Помогаю со студенческими работами здесь

Преобразование типов
мне надо чтоб ответы выводились в edt4,5,6,7 и если есть ошибки исправите.. а то сижу как дура кнопки тыкаю^_^* unit Unit1; ...

Преобразование типов
byte a; int b = 256; a = (byte)b; После приведения типа a = -6. Как вычисляется? Если b = 257, то a = 1 и это...

Преобразование типов
Есть метод, который принимает на вход переменную типа IEnumerable<DataRow>; у меня есть datagridView. Могу ли я коллекцию строк...

Преобразование типов
Всем доброго здоровья. Не могу решить простенькую задачу, уже не знаю что делать.Суть такова нужно вытащить из строки(символьный тип),...

Преобразование типов
Всем привет. Изучаю JavaScript на сайте https://learn.javascript.ru/object-conversion#численное-преобразование встретился пример var...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru