我有使用Excel数据透视表转换成每周的每日数据。我的“日期”列过去看起来像:1/1/2018,但是现在(每周)看起来像是1/1/2018-1/7/2018。我想从我的所有行(200行)中删除第一部分,以便每行仅显示1个日期,而那是第二天:1/7/2018。我知道这里有replace();但我希望每一行代表不同的数字。
答案 0 :(得分:0)
这是我的疯狂猜测...
CREATE TABLE my_table2 (
my_date varchar(50)
);
INSERT INTO my_table2 (my_date) VALUES ('1/1/2018 - 1/7/2018');
INSERT INTO my_table2 (my_date) VALUES ('12/10/2018 - 12/16/2018');
SET @row_number = 0;
SELECT (@row_number:=@row_number + 1) as date_number
,t.my_date
,SUBSTRING(t.my_date, LOCATE(' - ',t.my_date,1) + 3, LENGTH(t.my_date) - LOCATE(' - ',t.my_date,1) + 3) as my_alt_date
FROM my_table2 t;
这是输出...
+----+-------------+-------------------------+-------------+
| | date_number | my_date | my_alt_date |
+----+-------------+-------------------------+-------------+
| 1 | 1 | 1/1/2018 - 1/7/2018 | 1/7/2018 |
| 2 | 2 | 12/10/2018 - 12/16/2018 | 12/16/2018 |
+----+-------------+-------------------------+-------------+
我使用this tool创建了ASCII表。希望这可以帮助您入门。
答案 1 :(得分:0)
我想从我的所有行(200行)中删除第一部分,以便每行仅显示1个日期,那是第二天:1/7/2018
您可以为此使用mysql regular expression。
此:
POST
收益:
idhttp.Post(URL, jsonRequest, ms);
说明:正则表达式$soapOption = array(
'location' => 'https://www.elevy-ticf-train.org.hk:8443/ELevyService.svc',
'trace' => true,
'exceptions' => false,
'soap_version' => 'SOAP_1_2',
'encoding' => 'utf-8'
);
$client = new SoapClient('test.wsdl', $soapOption);
$client->LevyEFrank($data);
$response = $client->__getLastResponse();
$dom = new DomDocument();
@$dom->loadHtml($response);
$xmlScrope = $dom->getElementsByTagName('levyefrankresult');
$xmlRespone = $xmlScrope->item(0)->getElementsByTagName('*');
$stamp = array();
foreach ($xmlRespone as $element) {
$stamp[$element->tagName] = $element->nodeValue;
}
var_dump($stamp);
匹配从字符串开头到最后一个SELECT REGEXP_REPLACE('1/1/2018 - 1/7/2018', '.+ - ', '');
子字符串的所有内容; 1/7/2018
将匹配部分替换为第三个参数(此处为空字符串)。
您可以将其包装在'.+ - '
查询中,例如:
-