Обновление таблицы с помощью формы с использованием PHP в MS SQL

Класс GeoCoordinate (.NET Framework 4 и выше) уже имеет метод GetDistanceTo .

var sCoord = new GeoCoordinate(sLatitude, sLongitude);
var eCoord = new GeoCoordinate(eLatitude, eLongitude);

return sCoord.GetDistanceTo(eCoord);

Расстояние находится в метрах .

Вам нужно обратиться к System.Device.

0
задан Alex Howansky 22 March 2019 в 15:06
поделиться

1 ответ

Во-первых, о вашем неверном значении даты. Это правильно, потому что когда вы пропускаете '' вокруг 2020-03-20, SQL Server делает неявное преобразование типа данных . Следующий пример демонстрирует это:

Неявное преобразование:

DECLARE @date datetime

SELECT @date = 2020-03-20
SELECT @date

SELECT DATEADD(day, 2020-03-20, 0)

Вывод:

1905-06-21 00:00:00.000

Во-вторых, если вы хотите передать значения даты и времени, просто используйте соответствующий формат - 'yyyy-MM-dd', 'yyyyMMdd hh:nn:ss' или 'yyyy-MM-ddThh:nn:ss':

"UPDATE TABLENAME set COL1 = ".

Во-первых, о вашем неверном значении даты. Это правильно, потому что когда вы пропускаете '' вокруг 2020-03-20, SQL Server делает неявное преобразование типа данных . Следующий пример демонстрирует это:

Неявное преобразование:

[110]

Вывод:

[111]

Во-вторых, если вы хотите передать значения даты и времени, просто используйте соответствующий формат - 'yyyy-MM-dd', 'yyyyMMdd hh:nn:ss' или 'yyyy-MM-ddThh:nn:ss':

[112]

Я не знаю, как вы подключаетесь к SQL Server, но попробуйте использовать подготовленные операторы . [ 1117]

Обновление (Извлечение и отправка значений даты и времени с и на SQL Server):

На основе драйвера, который вы используете для подключения к SQL Server, вы можете получить значения даты и времени как текст или как объект даты и времени PHP (если вы используете драйвер PHP для SQL Server), но вам нужно отправить эти значения в виде текста. В вашем случае значения возвращаются в виде текста. Поэтому вам нужно сгенерировать универсальное значение даты и времени (например, в 'yyyy-MM-ddThh:nn:ss') как текст.

В следующем примере показаны некоторые допустимые и недействительные комбинации для оператора UPDATE T-SQL для вашего столбца datetime. Он протестирован с драйвером PHP для SQL Server 4.0.3.

<?php
# Value from database as text
$row['COL3'] = '2019-03-29T11:35:30.0000000';

# Valid statement
$tsql = "UPDATE TABLENAME SET COL3 = '".substr($row['COL3'], 0, 19)."' ";

# Valid statement - date("Y-m-d\Th:i:s") will return current datetime
$tsql = "UPDATE TABLENAME SET COL3 = '".date("Y-m-d\Th:i:s")."' ";

# Invalid statement - date("d-m-Y h:i:s", $row['COL3']) expects int as second parameter, 
# generates warning and returns '01-01-1970 12:33:39' as result  
$tsql = "UPDATE TABLENAME SET COL3 = '".date("d-m-Y h:i:s", $row['COL3'])."' ";
?>
POST[VAL1].", COL2 = ".

Во-первых, о вашем неверном значении даты. Это правильно, потому что когда вы пропускаете '' вокруг 2020-03-20, SQL Server делает неявное преобразование типа данных . Следующий пример демонстрирует это:

Неявное преобразование:

[110]

Вывод:

[111]

Во-вторых, если вы хотите передать значения даты и времени, просто используйте соответствующий формат - 'yyyy-MM-dd', 'yyyyMMdd hh:nn:ss' или 'yyyy-MM-ddThh:nn:ss':

[112]

Я не знаю, как вы подключаетесь к SQL Server, но попробуйте использовать подготовленные операторы . [ 1117]

Обновление (Извлечение и отправка значений даты и времени с и на SQL Server):

На основе драйвера, который вы используете для подключения к SQL Server, вы можете получить значения даты и времени как текст или как объект даты и времени PHP (если вы используете драйвер PHP для SQL Server), но вам нужно отправить эти значения в виде текста. В вашем случае значения возвращаются в виде текста. Поэтому вам нужно сгенерировать универсальное значение даты и времени (например, в 'yyyy-MM-ddThh:nn:ss') как текст.

В следующем примере показаны некоторые допустимые и недействительные комбинации для оператора UPDATE T-SQL для вашего столбца datetime. Он протестирован с драйвером PHP для SQL Server 4.0.3.

<?php
# Value from database as text
$row['COL3'] = '2019-03-29T11:35:30.0000000';

# Valid statement
$tsql = "UPDATE TABLENAME SET COL3 = '".substr($row['COL3'], 0, 19)."' ";

# Valid statement - date("Y-m-d\Th:i:s") will return current datetime
$tsql = "UPDATE TABLENAME SET COL3 = '".date("Y-m-d\Th:i:s")."' ";

# Invalid statement - date("d-m-Y h:i:s", $row['COL3']) expects int as second parameter, 
# generates warning and returns '01-01-1970 12:33:39' as result  
$tsql = "UPDATE TABLENAME SET COL3 = '".date("d-m-Y h:i:s", $row['COL3'])."' ";
?>
POST[VAL2].", COL3 = '2020-03-20' WHERE COL0 = 'VAL0'"

Я не знаю, как вы подключаетесь к SQL Server, но попробуйте использовать подготовленные операторы . [ 1117]

Обновление (Извлечение и отправка значений даты и времени с и на SQL Server):

На основе драйвера, который вы используете для подключения к SQL Server, вы можете получить значения даты и времени как текст или как объект даты и времени PHP (если вы используете драйвер PHP для SQL Server), но вам нужно отправить эти значения в виде текста. В вашем случае значения возвращаются в виде текста. Поэтому вам нужно сгенерировать универсальное значение даты и времени (например, в 'yyyy-MM-ddThh:nn:ss') как текст.

В следующем примере показаны некоторые допустимые и недействительные комбинации для оператора UPDATE T-SQL для вашего столбца datetime. Он протестирован с драйвером PHP для SQL Server 4.0.3.

<?php
# Value from database as text
$row['COL3'] = '2019-03-29T11:35:30.0000000';

# Valid statement
$tsql = "UPDATE TABLENAME SET COL3 = '".substr($row['COL3'], 0, 19)."' ";

# Valid statement - date("Y-m-d\Th:i:s") will return current datetime
$tsql = "UPDATE TABLENAME SET COL3 = '".date("Y-m-d\Th:i:s")."' ";

# Invalid statement - date("d-m-Y h:i:s", $row['COL3']) expects int as second parameter, 
# generates warning and returns '01-01-1970 12:33:39' as result  
$tsql = "UPDATE TABLENAME SET COL3 = '".date("d-m-Y h:i:s", $row['COL3'])."' ";
?>
0
ответ дан Zhorov 22 March 2019 в 15:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: