Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Gear

определить сепаратор даты в БД

07.11.2010, 11:20. Показов 1478. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
трабла следующая - на разных хостингах формат хранения даты в БД разный, т.е. отличается сепаратором, либо /, либо . - дак вот трабла как определить автоматом, а не путем научного тыка на каком какой, дабы сделать некую универсальную функцию работающую с датами, а не править сепаратор каждый раз под конкретный хостинг...
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.11.2010, 11:20
Ответы с готовыми решениями:

Определить, что один из членов меню - сепаратор
Как при перечислении определить, что один из членов меню - сепаратор? Есть MenuStrip1 - имя меню из нескольких подпунктов, разделённых...

С некоторой даты по настоящий день прошло m месяцев, определить название месяца неизвестной даты
С некоторой даты по настоящий день прошло m месяцев, определить название месяца неизвестной даты.

Дана дата d. Для этой даты определить даты первого и последнего дней недели
даты первого и последнего дней недели; даты первого и последнего дней года.

5
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
07.11.2010, 12:50
Имеется в виду базы MSSQL так?

Для вставки только даты (без времени) можно использовать формат даты без разделителей - 'yyyymmdd'. Он работает всегда. Например, для 30 августа 2004 получаем строку '20040830'

Если нужно вставлять дату и время или только время, выберите один из форматов поддерживаемых функцией CONVERT и используйте его. Например, CONVERT(datetime, '2004-08-30 13:10:15', 21)
0
Gear
07.11.2010, 12:58
видимо я не совсем корректно задал вопрос:
вообщем есть функция на ASP странице, которая берет дату и ее в соотв. с заданными правилами парсит, после чего пользователь вносит изменения соответсвующие (в том числе и в дату) и заносит эти изменения в БД, дак вот дату нада парсить в соотв. с форматом ее хранения на серваке в БД, т.е. если в БД используются сепараторы ., а дату отпарсить с сепаратором /, то будет егог при апдейте рекордсета... т.е. надо выводить дату уже с теми сепараторами, которые используются для хранения даты в БД... дак вот понятно, что можно каждый раз в функции под конкретный хостинг выставлять нужные сепараторы, но вот можно ли сделать опеределение этих разделителей автоматом??? вот в чем вопрос был...
Gear
08.11.2010, 10:38
т.е. чтобы еще понятнее было вот:
Code
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
<%@ Codepage=1251 Language=JScript %>
<!--METADATA TYPE='typelib' UUID='00000205-0000-0010-8000-00AA006D2EA4' NAME='ADODB Type Library' -->
<%
database_path = Server.MapPath('data.mdb')
str_Conn = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+database_path+';'
 
rs = Server.CreateObject('ADODB.Recordset')
rs.CursorLocation = 3
rs.CursorType = 2
rs.LockType = 3
 
function get_date(data_field,length) {
    var data_br, data, data_date_str, data_month_str, data_hours_str, data_minutes_str
    data_br = '/'
    data = new Date(data_field)
    data_date_str = new String(data.getDate())
    data_month_str = new String(data.getMonth()+1)
    data_hours_str = new String(data.getHours())
    data_minutes_str = new String(data.getMinutes())
    if (data_date_str.length == 1) {data_date = '0' + data_date_str} else {data_date = data_date_str}
    if (data_month_str.length == 1) {data_month = '0' + data_month_str} else {data_month = data_month_str}
    if (data_hours_str.length == 1) {data_hours = '0' + data_hours_str} else {data_hours = data_hours_str}
    if (data_minutes_str.length == 1) {data_minutes = '0' + data_minutes_str} else {data_minutes = data_minutes_str}
    data_time = ' '+data_hours+':'+data_minutes
    data_str = data_date+data_br+data_month+data_br+data.getFullYear()
    if(length == 1) data_str = data_str.concat(data_time)
    return(data_str)
}
 
rs.Open('temp',str_Conn)
_tmp = rs.Fields('temp')
Response.Write(_tmp+'
'+get_date(_tmp,1))
rs.Close()
%>
дак вот как определять автоматом значение переменной data_br для конкретного хостинга??? чтобы руками каждый раз не выставлять или точку или /
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
09.11.2010, 18:44
Если дело только в разделителе, а формат даты не меняется, то сделайте включаемый файл с константой DATA_BR. Присвойте ей нужное значение, включайте файл везде где нужен этот разделитель.

Можно и сложнее
Сделать в базе Access таблицу с единственным полем типа Data. Занести в нее единственное значение - 31 января 2004. Для определения разделителя даты делаем запрос к этой таблице и находим символ между цифрами. Это и будет разделитель. По расположению частей даты можно также определить формат даты.
0
Gear
10.11.2010, 08:44
первый вариант решения траблы самый простой - это понятно, у меня и так все переменные окружения для сайтов вынесены в отдельный файл, НО дело то именно в том, что хотелось бы не править под каждый конкретный хостинг именно этот параметр, а опеределять его автоматом, как вы предложили во втором варианте, НО я так и пошел этим путем как видно из скрипта и наступил на такие грабли: когда мы берем поле с датой оно у нас имеет вид скажем дд/мм/гггг чч:мм, пока оно как поле у нас висит мы не можем использовать к нему не индексОф ни какую другую функцию, а как только мы конвертим переменную с полем в формат стринг или дата чтобы разбирать что там к чему, то уже имеем строку в формате даты UTC (или GMT - рояля это не меняет)... т.е. там уже от разделителей и след простыл - вот в чем трабла... как врочем следа там нет и от формата хранения типа мм/дд или дд/мм (
конечно данная трабла мне не очень принципиальна, можно и ручками выставлять значения, ибо еще некоторые параметры все равно приходится под конкретный хостинг выставлять, но все ж интересно мне стало - а вообще сие возможно?? (я вот думаю может через адо можно поюзать бд на предмет определения формата даты, но что-то ничего не нашел подходящего)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.11.2010, 08:44
Помогаю со студенческими работами здесь

Сепаратор в строке состояния
Доброго времени суток, дорогие форумчане! Как добавить сепаратор в statusStrip, чтобы progressBar прицепить к правой части формы? Для...

Сепаратор строк по newline
Здравствуйте! Имеется некий метод который разбивает строку на отдельные слова разделённые пробелами. Scanner scanner = new...

Как добавить сепаратор на тулбар?
При добавлении кнопки со св-вом Style = tbrSeparator, добавляется промежуток между кнопками, без, собственно, разделителя. Каким образом...

Toolbar - что-то, похожее на сепаратор
Все доброго времени суток. Вопрос про VCL. Имеется TControlBar, в нём - TToolBar, в нём - TLabel. Вот как выглядит: На...

ListView - почему сепаратор разный?
Может на скрине плохо видно, но сепаратор разный, на одном элементе жирнее, на другом меньше. Пробовал менять цвет - не помогает.Как такое...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru