|
Тема
|
SQL проблем с дата в MSACCESS
|
|
Автор |
Viper X (just a snake...) |
Публикувано | 28.08.03 14:19 |
|
Пиша си една програмка на ВБА за Аксес, не съм много навътре с нещата, чета постоянно хелп и разни други книжки дето имам по въпроса, ама за това не открих нищо, а вече 1 час се боря с него :(( Та въпроса е - искам да добавя запис в таблицата с нещо подобно:
sql = "INSERT INTO picks (betid, date) values (6, 12.09.03 )"
DoCmd.RunSQL sql
Тука betid е integer - с него нямам проблеми - когато пробвам
sql = "insert into picks (betid) values (6)"
всичко е ОК, проблема идва от полето date - от тип дата, където пробвах какви ли не формати на датата:
12.09.03
'12.09.03'
#12.09.03#
'#12.09.03#'
и нито едно не тръгна, винаги ми казва Syntax Error in INSERT INTO statemant
та - в какъв формат трябва да се зададе датата, за да тръгне това чудо? Сигурен съм, че въпросът ми е мнооооого, мнооого тъп, ама какво да се прави, трябва и такива да има :))) Благодаря ви
| |
Тема
|
Re: SQL проблем с дата в MSACCESS
[re: Viper X]
|
|
Автор | AcidMemory (Нерегистриран) |
Публикувано | 28.08.03 15:48 |
|
хич не е тъп, проблемът с формата на датата в аксес е пословичен
номерът е, че зависи от regional settings на компютъра ти, т.е. ако ти е български (има едно г.), по-добре го махни, защото аксеса не се оправя
| |
Тема
|
Re: SQL проблем с дата в MSACCESS
[re: AcidMemory]
|
|
Автор | planik (Нерегистриран) |
Публикувано | 28.08.03 18:01 |
|
аз използвам други неща при msaccess i ms sql, но
защо не опиташ
insert into table (datefield ) values ('20030828')
100% ще стане
sql автоматично ще обърне стринга в дата
| |
Тема
|
Re: SQL проблем с дата в MSACCESS
[re: planik]
|
|
Автор | AcidMemory (Нерегистриран) |
Публикувано | 28.08.03 21:20 |
|
да, ако си направи формата на датата такъв - няма проблем, но ако започнат да се преплитат форматите (примерно се ползва и календар контролката и ръчно въвеждане) - става малък ад (просто трябва всеки да въвежда дата само по един и същи начин)
| |
Тема
|
Re: SQL проблем с дата в MSACCESS
[re: Viper X]
|
|
Автор |
Viper X (just a snake...) |
Публикувано | 28.08.03 23:36 |
|
мерси за идеите, проблема беше, че date e запазена дума в Аксеса, и се оказа че трябва да го заградя в счупени скоби, т.е.
sql = "INSERT INTO picks (betid, [date]) values (6, 12.09.03 )"
и всичко тръгна на 6
| |
|
Naistina tova e pravilnoto re6enie, i az sam se blaskal qko dokato go shvana.
4udq se samo kak nikoi ot moza4nite trastove ne moja da pomogne nito sega, nito predi nqkolko meseca, kogato pitah sa6toto ne6to...
Derzai...
We appoligize for inconvenience...
| |
Тема
|
Re: SQL проблем с дата в MSACCESS
[re: Viper X]
|
|
Автор |
radobg (левскарче) |
Публикувано | 01.09.03 06:54 |
|
форматите са няколко. аз например обикновено ползвам yyyy-mm-dd или yyyymmddhhmmss
| |
Тема
|
Re: SQL проблем с дата в MSACCESS
[re: radobg]
|
|
Автор | Dani (Нерегистриран) |
Публикувано | 02.09.03 10:42 |
|
Има една функция на Алън Браун от Австралия. Той форматира датите преди да ги използва в SQL стринга.
Function SQLDate(varDate As Variant) As String
' MS-Access Tips for Serious Users
' Provided by Allen Browne
If IsDate(varDate) Then
SQLDate = "#" & Format$(varDate, "mm\/dd\/yyyy") & "#"
End If
End Function
Ето как се използва:
StrSQL = "SELECT * FROM [Holidays data]"
StrSQL = StrSQL & " WHERE [Date]=" & SQLDate(curDate)
StrSQL = StrSQL & " ORDER BY [ID];"
Set rst = CurrentDb.OpenRecordset(StrSQL)
А ето как се форматира дата:
Format(Now(),"Short date")
| |
Тема
|
Re: SQL проблем с дата в MSACCESS
[re: Dani]
|
|
Автор | Ani (Нерегистриран) |
Публикувано | 03.09.03 22:46 |
|
Човекът от Австралия - много добре, но ако не ме лъже паметта си го пише и някъде в helpa, че датата, когато се използва в sql-a трябва да е във формат mm/dd/yyyy
| |
Тема
|
Точно така, виж как форматира датата
[re: Ani]
|
|
Автор | Dani (Нерегистриран) |
Публикувано | 04.09.03 13:06 |
|
Да точно така. Всички операции свързани с датата трябва да са във формат mm/dd/yyyy и понеже регионалните настройки са различни Алън Брауни предлага винаги когато се работи с датата тя да се форматира с функцията която е показана.
Аз следвам неговата препоръка и нямам проблеми при SQL операциите. Това е за Access 97, 2000, 2002.
Що се касае да MS SQL Server 2000 още не съм толкова сигурен, но мисля че пак ще е така.
| |
|
|
|
|