Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];

Вниз

SQL запрос.   Найти похожие ветки 

 
fluxion ©   (2008-05-07 06:25) [0]

1. Есть таблица (Table1), в одном из полей (DateTime) идет запись в виде 12.03.2008 12:35 и т.д. различные даты время. Как при помощи sql запроса преобразовать это поле в вид 12.03.2008  ?, т.е. без времени.

2. Возможно ли вырезать из этих строк дату и вcтавить в другое поле (Date) т.е. чтоб в поле DateTime осталось 12.03.2008 12:35, а в поле Date скопировалась только 12.03.2008 ??

P.S. Delphi 7 + MSSQL2005


 
Loginov Dmitry ©   (2008-05-07 07:49) [1]

> Как при помощи sql запроса преобразовать это поле в вид
> 12.03.2008  ?, т.е. без времени.


CAST(DateField AS CHAR(10)) ?


 
ANB   (2008-05-07 09:57) [2]

Подставить правильную маску конвертации.


> CAST(DateField AS CHAR(10)) ?

При некоторых настройках может дать 20080312 1


 
Ega23 ©   (2008-05-07 10:04) [3]

1. В поле лежит datetime, это не строка, это float, реализацию в BOL посмотри.
2. Посмотри скрипты:

Select Now = getadate();
Select Now = Cast(getadate() as char(10));
Select Now = Convert(varchar(10), getdate(), 104);
Select Now = Convert(varchar(10), getdate(), 104) + " " +  Convert(varchar(10), getdate(), 108);


 
Anatoly Podgoretsky ©   (2008-05-07 12:10) [4]


> Ega23 ©   (07.05.08 10:04) [3]
> 1. В поле лежит datetime, это не строка, это float, реализацию
> в BOL посмотри.

тип datetime это не float и даже близко не лежал.


 
Ega23 ©   (2008-05-07 12:15) [5]


> тип datetime это не float и даже близко не лежал.


Пардон, с прямым углом спутал.


Values with the datetime data type are stored internally by Microsoft SQL Server as two 4-byte integers. The first 4 bytes store the number of days before or after the base date, January 1, 1900. The base date is the system reference date. Values for datetime earlier than January 1, 1753, are not permitted. The other 4 bytes store the time of day represented as the number of milliseconds after midnight.



 
Anatoly Podgoretsky ©   (2008-05-07 12:51) [6]

> Ega23  (07.05.2008 12:15:05)  [5]

Так что это обеспечивает повышенную точность, уменьшение погрешности при преобразовании в строку, что с успехом компенсируется погрешность при записи в 3 миллисекунды :-). Очень не понятно почему так сделано.


 
Ega23 ©   (2008-05-07 13:09) [7]


> Так что это обеспечивает повышенную точность, уменьшение
> погрешности при преобразовании в строку, что с успехом компенсируется
> погрешность при записи в 3 миллисекунды :-). Очень не понятно
> почему так сделано.


Да ну их в баню, в 8 байт если с дискретом в 10 наносекунд писать, то в ~5800 лет уложиться можно.


 
Anatoly Podgoretsky ©   (2008-05-07 13:44) [8]

> Ega23  (07.05.2008 13:09:07)  [7]

Дискрет никак не связан с длительностью, время пишется начиная с полуночи, а дата не зависима от времени, всего примерно 4 миллиарда дней.
Может как то мешает тип SmallDate


 
Ega23 ©   (2008-05-07 14:20) [9]


> Может как то мешает тип SmallDate


Похоже на то.


 
sniknik ©   (2008-05-07 15:34) [10]

ниче, вот дождемся 2008-го, там толи 7 толи 9 (не помню) знаков под милисекунды(милимили...? котороче то что после секунд) и все значимые, дискретность .0000001.
всем хватит...


 
Ega23 ©   (2008-05-07 15:38) [11]


> 0000001.


ну как раз 100 наносекунд, что GetSystemTimeAsFileTime должно давать...
Непонятно, почему раньше ше было, всё-таки вроде одна система...



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.048 c
15-1208330576
Slider007
2008-04-16 11:22
2008.06.01
С днем рождения ! 16 апреля 2008 среда


2-1209966163
mefodiy
2008-05-05 09:42
2008.06.01
Экспорт из базы данных Visual FoxPro


2-1210068606
Эд
2008-05-06 14:10
2008.06.01
Нужен совет мастера


2-1210235520
Андрей Пл
2008-05-08 12:32
2008.06.01
Размер в байтах!!!


11-1189326313
Kotik666
2007-09-09 12:25
2008.06.01
Обработка содержимого EditBox в стандартном TOpenDirDialog





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский