Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Надо не 2/7/2004, а 07/02/2004. Как? Добавлено: 12.02.04 16:39  

Автор вопроса:  Seregahome
Надо преобразовать из американского формата даты в русский. Помню, где-то кто-то в форуме уже об этом писал.

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #1
Добавлено: 12.02.04 16:43
если напишешь mm и dd, то дает двухзначное число месяца и дня соотвественно.

Ответить

Номер ответа: 2
Автор ответа:
 Seregahome



Вопросов: 39
Ответов: 24
 Профиль | | #2 Добавлено: 12.02.04 18:38

А можно по-подробнее?

Ответить

Номер ответа: 3
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #3
Добавлено: 12.02.04 20:04

A можо вопрос попдробнее?

Откуда взялась дата в американском формате?

И в какой формат надо перевести?

Функция Format выводит данные в требуемом формате. Одна проблема она принимает системный формат.

Format(date, "dd.mm.yyyy") - вернет дату в русском формате

Ответить

Номер ответа: 4
Автор ответа:
 Seregahome



Вопросов: 39
Ответов: 24
 Профиль | | #4 Добавлено: 12.02.04 20:31

Вот что пишу (надеюсь достаточный фрагмент)

txtFrom.Text = "#" & txtFrom.Text & "#"
txtTo.Text = "#" & txtTo.Text & "#"
rs.Source = "SELECT * FROM Razn WHERE Date>=" & _
txtFrom & " AND Date<=" & txtTo & " ORDER BY FIO ASC"

В txtFrom и txtTo даты приходится вводить так - mm/dd/yyyy. Это конечно неприемлимо. В идеале было бы dd.mm.yyyy.

Может напишеш прямо кусок кода, куда втыкать этот Format?

Ответить

Номер ответа: 5
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #5
Добавлено: 12.02.04 21:54

Вот теперь конкретно и понятно.

Тебе надо из системной даты получить американский формат, что делать если Access и SQL Server (и помоему все что походит через ADO)  работают в американским форматом, приходится подстраиваться.

А теперь о коде. Если ты уверен, что системный формат соотвествует dd.mm.yyyy, то можешь смело использовать Format:

rs.Source = "SELECT * FROM Razn WHERE Date>=#" & _
Format(txtFrom, "mm/dd/yyyy") & "# AND Date<=#" & Format(txtTo, "mm/dd/yyyy") & "# ORDER BY FIO ASC"

А вот если не уверен в системнон формате, но знаешь что ввод в формате dd.mm.yyyy, то прийдется при помощи стринговых функций строить дату в американском формате.

P.S. В условии можно использовать "... WHERE Date BETWEEN #" & Format(txtFrom, "mm/dd/yyyy") & "# AND #" & Format(txtTo, "mm/dd/yyyy") & "# 

P.S.S. вместо стринговых функций можно использовать мой любимый Split(...), a именно split(txtFrom, ".")(1) & "/" & split(txtFrom, ".")(0) & "/" & split(txtFrom, ".")(2) - на выходе получим дату в американском формате

Ответить

Номер ответа: 6
Автор ответа:
 Gloom



Вопросов: 0
Ответов: 36
 Профиль | | #6 Добавлено: 17.02.04 13:23

Вообще-то, можно гораздо проще:

rs.Source = "SELECT * FROM Razn WHERE Date>=" & Format(txtFrom,"\#mm\/dd\/yyyy\#")

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам